2012-04-29 20 views
16

¿Se ha agregado o modificado algún encabezado de solicitud a la solicitud HTTP antes de reenviar al servidor por un servidor proxy?¿Los servidores proxy HTTP modifican los paquetes de solicitud?

En caso afirmativo, ¿se realizan los cambios en los mismos paquetes o se utilizan los contenidos para crear nuevos paquetes de solicitud con las modificaciones?

Respuesta

25

Existen algunos tipos diferentes de servidores proxy. Como ha mencionado encabezados de solicitud, supongo que está hablando de servidores proxy HTTP, que envían solicitudes HTTP, no paquetes.

NOTA: En el caso especial de HTTPS requests (TLS/SSL a través de CONNECT), servidores proxy se justo delante del contenido de los paquetes TCP (y no son capaces de inspeccionar los paquetes a menos que actúa como proxy man-in-the-middle) .


Por supuesto que depende del software de proxy y su configuración, pero proxies HTTP se espera seguir el W3C Guidelines for Web Content Transformation Proxies, que dice muchas cosas, pero lo más relevante:

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

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

  • Aparte de las modificaciones requeridas por el RFC 2616 servidores proxy HTTP no debe modificar los valores de los campos de cabecera que no sean los User-Agent, Accept, Accept-Charset, Accept-Encoding y Accept-Language campos de cabecera y no debe eliminar campos de cabecera.

  • Los apoderados 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 HTTP Via.


En resumen, por lo general, se puede esperar que estas cabeceras HTTP para ser cambiado/añadido por una compatible con los estándares de proxy:

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

No entiendo la parte "Pide a plazo no paquetes". ¿Quiere decir que reconstruirá la solicitud http de los paquetes entrantes y luego los modificará? – Ashwin

+0

@Ashwin: Creo que estás malinterpretando el protocolo HTTP aquí. HTTP es un protocolo de aplicación, que está en la capa _application_ del [modelo OSI] (http://en.wikipedia.org/wiki/OSI_model). Todos los 'paquetes' HTTP son realmente paquetes TCP, y HTTP no trata directamente con los paquetes (todo esto sucede en las capas _transport_ y _network_ del [modelo OSI] (http://en.wikipedia.org/wiki/OSI_model)) – Xenon

+0

cuando realizo una solicitud en el navegador como "www.google.com", esta solicitud viaja desde el nivel de aplicación (navegador) directamente al nivel físico (que es el NIC). Ahora el servidor proxy lo recupera y luego decodifica los datos del nivel físico a la capa 2 y así sucesivamente ... para transportar (capa 4). aquí modifica los datos y luego los reenvía ¿no? – Ashwin

Cuestiones relacionadas