http http-headers httprequest http-proxy

¿Los servidores proxy HTTP modifican los paquetes de solicitud?



http-headers httprequest (1)

¿Se agrega o modifica algún encabezado de solicitud a la solicitud HTTP antes de reenviarlo al servidor mediante un servidor proxy?

Si es así, ¿se realizan los cambios en los mismos paquetes o se utilizan los contenidos para crear nuevos paquetes de solicitud con las modificaciones?


Hay algunos tipos diferentes de servidores proxy. Debido a que ha mencionado los encabezados de solicitud, voy a suponer que está hablando de servidores proxy HTTP, que reenvían solicitudes HTTP, no paquetes.

NOTA: En el caso especial de las solicitudes HTTPS (TLS / SSL a través de CONNECT ), los servidores proxy simplemente reenviarán el contenido de los paquetes TCP (y no podrán inspeccionar los paquetes a menos que actúen como un proxy de man-in-the-middle ).

Por supuesto, depende del software de proxy y su configuración, pero se espera que los proxies HTTP sigan las Directrices del W3C para los proxies de transformación de contenido web , que establecen muchas cosas, pero lo más relevante:

  • Aparte de convertir entre los proxies HEAD y GET no se deben alterar los métodos de solicitud.

  • Si la solicitud contiene una directiva Cache-Control: no-transform , los proxies no deben alterar la solicitud más que para cumplir con el comportamiento HTTP transparente definido en la sección 14.9.5 de HTTP RFC 2616 secciones y la sección 13.5.2 y agregar campos de encabezado como se describe en 4.1.6 Campos de encabezado HTTP adicionales .

  • Aparte de las modificaciones requeridas por RFC 2616, los proxies HTTP no deben modificar los valores de los campos de encabezado que no sean los campos de encabezado User-Agent , Accept , Accept-Charset , Accept-Encoding y Accept-Language y no deben eliminar los campos de encabezado.

  • Los proxies deben agregar la dirección IP del iniciador de la solicitud al final de una lista separada por comas en un campo de encabezado HTTP X-Forwarded-For

  • Los proxies deben (de acuerdo con RFC 2616) incluir un campo de encabezado Via HTTP.

En resumen, generalmente puede esperar que estos encabezados HTTP sean modificados / agregados por un proxy compatible con los estándares:

  • User-Agent
  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • X-Forwarded-For
  • Via