나는 당신이 항상 웹 프록시로서 인생의 기쁨을 경험하는 시련과 고난에 대해 생각했다는 것을 알고 있습니다. 솔직히 누가하지 않았습니까? 오늘 당신은이 목표 (적어도 그 일부)를 실현해야합니다. 웹 사이트 X는 매일 많은 트래픽을 발생 시키며 쿼리 매개 변수를 통해 민감한 정보를 전달해야하는 많은 수의 사용자 (사용자는 어리 석음)로 인해 PaaS (Proxy as a Service)를 찾고 있습니다. 귀하의 작업은 요청을 원래 대상으로 전달하기 전에 요청에서 중요한 쿼리 매개 변수를 모두 제거하는 것입니다.
입력
- 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
채점
이것은 code-golf 이므로 가장 짧은 답변 (바이트)이 이깁니다.
&매개 변수 이외의 다른 곳에 나타날 수 있습니까 ?
?? 또한 주문을 그대로 유지해야합니까?
&검색어 매개 변수의 일부인 경우 다음 과 같이 올바르게 표시되어야합니다.%26
http://foo:&foo=x@foo.com:8080/?foo=1&bar=fooRFC에 의해 허용됩니다. 이로 인해 기존 솔루션이 많이 중단됩니다. : D가 (규칙은 사용자 정보 같이 확장 될 수있다 제한없이 또는 PCT 탈출 또는 서브 delims 및 서브 delims은 할 수 &및 =)