ฉันรู้ว่าคุณเคยคิดเกี่ยวกับการทดลองและความยากลำบากในการประสบความสุขในชีวิตเป็นเว็บพร็อกซี่ สุจริตใครยังไม่ได้? วันนี้คุณได้รับมอบหมายให้ตระหนักถึงเป้าหมายนี้ (อย่างน้อยก็เป็นส่วนหนึ่งของมัน) เว็บไซต์ X ได้รับปริมาณการใช้งานจำนวนมากในแต่ละวันและกำลังมองหา PaaS (เห็นได้ชัดว่านี่หมายถึงพร็อกซีในรูปแบบบริการ) เนื่องจากมีผู้ใช้จำนวนมากที่ยืนยันการส่งผ่านข้อมูลที่ละเอียดอ่อนผ่านพารามิเตอร์การสืบค้น งานของคุณคือการลบพารามิเตอร์เคียวรีใด ๆ และที่สำคัญทั้งหมดออกจากคำขอก่อนที่จะส่งต่อคำขอผ่านไปยังปลายทางดั้งเดิม
อินพุต
- ดีที่เกิดขึ้น URL แบบ HTTP แน่นอนที่เป็นไปตามหลักไวยากรณ์ URI ในRFC3986 มาตรา 3
- คุณสามารถสันนิษฐานได้ว่าไม่มีชิ้นส่วน
- ตัวอย่างรูปแบบย่อที่มีอะไรในวงเล็บเหลี่ยมหมายถึงทางเลือก:
http[s]://[user:pass@]host.name.com[:port]/[?param1=value1¶m2=value2...]
- รายการพารามิเตอร์การสืบค้นที่จะถูกลบ
เอาท์พุต
HTTP URL ที่แก้ไขโดยไม่มีพารามิเตอร์ที่กำหนดในรายการอินพุต
ตัวอย่าง
http://example.com/ [foo]
> http://example.com/
http://example.com/?foo=bar []
> http://example.com/?foo=bar
http://example.com/ []
> http://example.com/
http://example.com/?foo=1&bar=2&baz=3 [foo,baz]
> http://example.com/?bar=2
http://example.com/?foo=1&bar=2&baz=3 [foo,bar,baz]
> http://example.com/
http://example.com/?foo&bar=2&baz= [foo,baz]
> http://example.com/?bar=2
http://example.com/?abc=1&def=2&baz=foo [foo,bar]
> http://example.com/?abc=1&def=2&baz=foo
http://example.com/?foobar=baz [foo]
> http://example.com/?foobar=baz
http://foo:foo@foo.com:8080/?foo=1&bar=foo [foo]
> http://foo:foo@foo.com:8080/?bar=foo
เกณฑ์การให้คะแนน
นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ
&ปรากฏที่ใดก็ได้นอกจากพารามิเตอร์?
?? คำสั่งควรถูกเก็บไว้เหมือนเดิมหรือไม่
&เป็นส่วนหนึ่งของพารามิเตอร์การสืบค้นก็ควรจะ urlencoded อย่างถูกต้องเป็น%26
http://foo:&foo=x@foo.com:8080/?foo=1&bar=fooรับอนุญาตจาก RFC สิ่งนี้น่าจะแก้ปัญหาที่มีอยู่เดิม : D (กฎคือ userinfo สามารถขยายได้ในรูปแบบ unreserved หรือ pct-escape หรือ sub-delims และ sub-delims สามารถมีได้&และ=)