我知道您一直想着通过网络代理体验生活乐趣的磨难和磨难。老实说,谁没有呢?今天,您的任务是实现这个目标(至少是其中的一部分)。由于大量用户坚持通过查询参数传递敏感信息(用户很愚蠢),因此网站X每天都有大量流量,并且正在寻找PaaS(显然这是指代理即服务)。您的任务是在将请求转发到其原始目的地之前,从请求中删除所有敏感查询参数。
输入项
- 遵循RFC3986第3节中 URI语法的格式正确的绝对HTTP URL 。
- 您可以假设没有碎片
- 简短格式示例,其中方括号中的任何内容表示可选:
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
计分
这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。
&出现在参数之间以外的任何地方吗?
??还应该保持订单原样吗?
&是查询参数的一部分,则应正确将其正确编码为%26
http://foo:&foo=x@foo.com:8080/?foo=1&bar=foo是RFC允许的。这将打破现有的解决方案。:D(规则为userinfo可以扩展为未保留或pct &=