Sé que siempre has pensado en las pruebas y tribulaciones de experimentar las alegrías de la vida como un proxy web. Honestamente, ¿quién no? Hoy tienes la tarea de alcanzar este objetivo (al menos una parte de él). El sitio web X recibe mucho tráfico a diario y está buscando un PaaS (claramente esto se refiere a Proxy as a Service) debido a la gran cantidad de usuarios que insisten en pasar información confidencial a través de parámetros de consulta (los usuarios son tontos). Su tarea es eliminar todos los parámetros de consulta confidenciales de la solicitud antes de reenviar la solicitud a su destino original.
Entrada
- Una URL HTTP absoluta bien formada que sigue la gramática de URI en RFC3986 Sección 3 .
- Puedes asumir que no hay fragmento
- Breve ejemplo de formato donde cualquier cosa entre corchetes denota opcional:
http[s]://[user:pass@]host.name.com[:port]/[?param1=value1¶m2=value2...]
- Una lista de parámetros de consulta que se eliminarán.
Salida
La URL HTTP modificada sin los parámetros definidos en la lista de entrada.
Ejemplos
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
Puntuación
Este es el código de golf , por lo que gana la respuesta más corta (en bytes).
&aparecer en cualquier otro lugar que no sea entre parámetros?
?? ¿También debe mantenerse la orden como estaba?
&es parte de un parámetro de consulta, debe estar correctamente codificado como%26
http://foo:&foo=x@foo.com:8080/?foo=1&bar=fooestá permitido por el RFC. Esto debería romper muchas de las soluciones existentes. : D (La regla es userinfo puede expandirse como sin reservas o pct-escape o subdelimitaciones, y los subdelimitaciones pueden tener &y =)