Я знаю, що ви завжди думали про випробування та негаразди, коли ви відчували радості життя як веб-проксі. Чесно кажучи, хто ні? Сьогодні вам поставлено завдання реалізувати цю мету (принаймні її частину). Веб-сайт X щодня отримує багато трафіку і шукає PaaS (явно це стосується проксі як сервіс) через велику кількість користувачів, які наполягають на передачі конфіденційної інформації за параметрами запиту (користувачі нерозумні). Ваше завдання - видалити будь-які чутливі параметри запиту із запиту, перш ніж пересилати запит до його початкового місця призначення.
Вхідні дані
- Добре сформована абсолютна URL-адреса HTTP, яка слідує граматиці URI у розділі 3 RFC3986 .
- Можна припустити, що фрагмента немає
- Короткий приклад формату, коли що-небудь у квадратних дужках позначає необов’язково:
http[s]://[user:pass@]host.name.com[:port]/[?param1=value1¶m2=value2...]
- Список параметрів запиту, які потрібно видалити.
Вихідні дані
Змінена URL-адреса HTTP без параметрів, визначених у вхідному списку.
Приклади
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
Оцінка балів
Це код-гольф , тому найкоротша відповідь (у байтах) виграє.
&відображатися де-небудь, крім параметрів?
?? Чи слід дотримуватися порядку, як було?
&є частиною параметра запиту, він повинен бути правильно зашифрований як%26
http://foo:&foo=x@foo.com:8080/?foo=1&bar=fooце дозволено RFC. Це повинно зламати купу існуючих рішень. : D (Правило: інформація про користувачів може бути розширена як незарезервована або pct-escape або sub-delims, а sub-delims може мати &і =)