Ir al contenido
GProxy
Registro
Глоссарий 9 min de lectura 33 vistas

Encabezados HTTP

Explore encabezados esenciales de proxy HTTP: X-Forwarded-For, Via y más. Aprenda cómo estos encabezados revelan direcciones IP de clientes y rutas de servidores proxy.

HTTP
Encabezados HTTP

Los encabezados de proxy HTTP, como X-Forwarded-For y Via, son utilizados por los servidores proxy para transmitir información sobre el cliente original, la ruta de la solicitud y otros datos contextuales al servidor ascendente, que de otro modo quedarían ocultos por la presencia del proxy.

Cuando una solicitud HTTP pasa a través de uno o más servidores proxy, el servidor ascendente inmediato normalmente ve la dirección IP del último proxy, no la del cliente original. Los encabezados de proxy abordan esto añadiendo o modificando encabezados HTTP específicos, permitiendo que la IP, el protocolo, el host del cliente original y la secuencia de proxies se comuniquen al servidor de destino final.

X-Forwarded-For

El encabezado X-Forwarded-For (XFF) es un encabezado estándar de facto utilizado para identificar la dirección IP de origen de un cliente que se conecta a un servidor web a través de un proxy HTTP o un balanceador de carga.

Propósito

Su propósito principal es permitir que el servidor web acceda a la dirección IP del cliente original para fines de registro, análisis, seguridad y lógica específica de la aplicación (por ejemplo, control de acceso basado en IP, geolocalización). Sin XFF, todas las solicitudes parecerían originarse desde la dirección IP del servidor proxy.

Formato y Ejemplos

El encabezado XFF puede contener una lista de direcciones IP separadas por comas. Cuando una solicitud pasa a través de múltiples proxies, cada proxy añade la dirección IP del cliente que se conectó a él al encabezado XFF.

  • X-Forwarded-For: <cliente>, <proxy1>, <proxy2>

Ejemplo 1: Proxy Único
Un cliente (192.0.2.1) se conecta a un proxy (198.51.100.1), que luego se conecta al servidor de origen.
El proxy añade:

X-Forwarded-For: 192.0.2.1

El servidor de origen ve la solicitud proveniente de 198.51.100.1 y X-Forwarded-For: 192.0.2.1.

Ejemplo 2: Múltiples Proxies
Un cliente (192.0.2.1) se conecta al Proxy A (198.51.100.1), que se conecta al Proxy B (203.0.113.1), que luego se conecta al servidor de origen.
1. Cliente a Proxy A: El Proxy A añade X-Forwarded-For: 192.0.2.1.
2. Proxy A a Proxy B: El Proxy B recibe X-Forwarded-For: 192.0.2.1. El Proxy B le añade 198.51.100.1.
El encabezado se convierte en: X-Forwarded-For: 192.0.2.1, 198.51.100.1.
3. Proxy B a Servidor de Origen: El servidor de origen recibe X-Forwarded-For: 192.0.2.1, 198.51.100.1.

En una cadena de proxies, la dirección IP más a la izquierda es típicamente la del cliente original. La dirección IP más a la derecha es la IP del proxy ascendente inmediato (el cliente que se conectó al proxy actual).

Consideraciones de Seguridad para X-Forwarded-For

El encabezado X-Forwarded-For puede ser fácilmente falsificado por un cliente malicioso. Un cliente puede enviar una solicitud con un encabezado X-Forwarded-For fabricado.

GET / HTTP/1.1
Host: example.com
X-Forwarded-For: 10.0.0.1, 1.1.1.1

Si un proxy simplemente lo añade, el encabezado recibido por el servidor de origen podría verse como X-Forwarded-For: 10.0.0.1, 1.1.1.1, <ip_del_proxy>.
Por lo tanto, las aplicaciones descendentes no deben confiar directamente en todo el valor del encabezado X-Forwarded-For. La práctica generalmente aceptada es confiar solo en la dirección IP no confiable más a la derecha de la lista como la IP real del cliente, después de eliminar cualquier entrada que pertenezca a proxies de confianza conocidos. Muchos servidores web y frameworks de aplicaciones proporcionan mecanismos para especificar una lista de proxies de confianza.

Via

El encabezado Via es un encabezado HTTP estándar que indica los proxies y gateways intermedios por los que ha pasado una solicitud (o respuesta).

Propósito

El encabezado Via tiene varios propósitos:
* Trazabilidad: Proporciona un rastro de la cadena de proxies, útil para depurar rutas de red.
* Detección de Bucles: Puede ayudar a detectar bucles de solicitud en cadenas de proxies.
* Compatibilidad de Protocolo: Señala las versiones de protocolo utilizadas por cada proxy intermedio, lo que puede ser relevante para las conversiones de protocolo.

Formato y Ejemplos

Cada proxy añade su propia entrada Via al encabezado. El formato para cada entrada es nombre-protocolo/versión-protocolo host:puerto (comentario). El campo comentario es opcional y puede contener información arbitraria.

Via: <nombre-protocolo>/<versión-protocolo> <host>:<puerto> (comentario)

Ejemplo:
Un cliente envía una solicitud que pasa por el Proxy A (nombre de host proxy-a.example.com, puerto 8080) y el Proxy B (nombre de host proxy-b.example.com, puerto 80).

  1. Cliente a Proxy A: El Proxy A añade Via: HTTP/1.1 proxy-a.example.com:8080.
  2. Proxy A a Proxy B: El Proxy B recibe Via: HTTP/1.1 proxy-a.example.com:8080. El Proxy B antepone su propia entrada.
    El encabezado se convierte en: Via: 1.1 proxy-b.example.com, 1.1 proxy-a.example.com:8080.
    (Nota: HTTP/ a menudo se omite si es HTTP, y el puerto 80/443 podría omitirse).
  3. Proxy B a Servidor de Origen: El servidor de origen recibe el encabezado Via completo.

Consideraciones de Privacidad y Operativas

El encabezado Via expone la topología de red interna y los nombres de host, lo que podría ser una preocupación de seguridad o privacidad en algunas implementaciones. Las organizaciones podrían optar por eliminar o modificar este encabezado para proxies orientados al exterior para evitar la divulgación de la red interna.

Forwarded

El encabezado Forwarded es un encabezado estandarizado definido en la RFC 7239, destinado a reemplazar los encabezados de facto X-Forwarded-For, X-Forwarded-Host y X-Forwarded-Proto.

Propósito

Proporciona una forma más estructurada y extensible de transmitir información sobre el cliente original, el propio proxy y el contexto de la solicitud original (host, protocolo) al servidor ascendente.

Formato y Ejemplos

El encabezado Forwarded puede contener uno o más conjuntos de parámetros, separados por comas, que representan cada proxy en la cadena. Cada conjunto de parámetros utiliza pares clave-valor. Los parámetros comunes incluyen:
* for: La dirección IP (o identificador ofuscado) del cliente original.
* by: La dirección IP (o identificador ofuscado) del proxy que reenvió la solicitud.
* host: El encabezado Host original solicitado por el cliente.
* proto: El protocolo original (por ejemplo, http o https) utilizado por el cliente.

Forwarded: for=<ip_cliente>; proto=<protocolo>; host=<host_original>
Forwarded: for=<ip_cliente>, for=<ip_proxy>; proto=<protocolo>

Ejemplo 1: Proxy Único
Un cliente (192.0.2.1) se conecta vía HTTPS a un proxy (198.51.100.1) solicitando example.com.
El proxy añade:

Forwarded: for=192.0.2.1; proto=https; host=example.com

Ejemplo 2: Múltiples Proxies
Cliente (192.0.2.1) -> Proxy A (198.51.100.1) -> Proxy B (203.0.113.1) -> Servidor de Origen.
1. Cliente a Proxy A: El Proxy A añade Forwarded: for=192.0.2.1; proto=https; host=example.com.
2. Proxy A a Proxy B: El Proxy B recibe el encabezado. El Proxy B añade su propia entrada, incluyendo by para identificarse.
El encabezado se convierte en:
Forwarded: for=192.0.2.1; proto=https; host=example.com, for=198.51.100.1; by=203.0.113.1
(Nota: Los parámetros host y proto suelen incluirse solo en la primera entrada para el cliente original, a menos que un proxy realice una reescritura de protocolo o host).

Comparación: X-Forwarded-For vs. Forwarded

Característica X-Forwarded-For Forwarded
Estado Estándar Estándar de facto (encabezado X- no estándar) Estándar RFC 7239
Información Solo direcciones IP del cliente IP del cliente, IP del proxy (by), host original, protocolo original (proto)
Estructura Lista de direcciones IP separadas por comas Lista de conjuntos de parámetros clave-valor estructurados, separados por comas
Extensibilidad Limitada a direcciones IP Altamente extensible con parámetros adicionales
Adopción Ampliamente soportado por software e infraestructura existentes Adopción creciente, pero menos ubicuo que XFF actualmente
Seguridad Vulnerable a la suplantación; requiere un análisis cuidadoso Todavía vulnerable a la suplantación; el análisis estructurado ayuda a la robustez

Otros Encabezados de Proxy

X-Forwarded-Host

Este encabezado de facto identifica el Host original solicitado por el cliente en el encabezado de solicitud HTTP Host. Es útil cuando un proxy o balanceador de carga modifica el encabezado Host (por ejemplo, para enrutamiento interno) antes de reenviar la solicitud al servidor ascendente, pero la aplicación necesita conocer el host original solicitado por el cliente para tareas como generar URL absolutas o manejar hosts virtuales.

Ejemplo:
El cliente solicita example.com. El proxy reenvía al host interno app-server-1.

Host: app-server-1
X-Forwarded-Host: example.com

X-Forwarded-Proto

Este encabezado de facto identifica el protocolo (HTTP o HTTPS) que el cliente utilizó para conectarse al proxy o balanceador de carga. Esto es crucial cuando el proxy realiza la terminación SSL/TLS, lo que significa que el cliente se conecta a través de HTTPS, pero el proxy se comunica con el servidor backend a través de HTTP simple. La aplicación necesita conocer el protocolo original para generar enlaces correctos (por ejemplo, https:// en lugar de http://).

Ejemplo:
El cliente se conecta vía HTTPS a un balanceador de carga. El balanceador de carga se conecta vía HTTP al backend.

X-Forwarded-Proto: https

X-Real-IP

Este es otro encabezado de facto, comúnmente utilizado por NGINX, para transmitir la dirección IP del cliente original. A diferencia de X-Forwarded-For, típicamente contiene solo una dirección IP, la del cliente original o la del proxy de confianza ascendente inmediato. A menudo lo establece el primer proxy en una cadena después de validar el encabezado X-Forwarded-For.

Ejemplo:

X-Real-IP: 192.0.2.1

Implicaciones Prácticas y Casos de Uso

Los encabezados de proxy son fundamentales para el correcto funcionamiento y la seguridad en las arquitecturas web modernas que involucran proxies, balanceadores de carga y CDNs.

  • Registro y Análisis: Las direcciones IP precisas del cliente son esenciales para los registros de acceso del servidor web, el análisis de tráfico y el seguimiento del comportamiento del usuario.
  • Seguridad:
    • Control de Acceso Basado en IP: Restringir el acceso a ciertos recursos basándose en las direcciones IP del cliente.
    • Limitación de Tasa: Prevenir abusos o ataques DDoS limitando las solicitudes por IP de cliente.
    • Firewalls de Aplicaciones Web (WAFs): Aplicar reglas de seguridad basadas en la identidad del cliente original.
    • Geolocalización: Determinar la ubicación geográfica de un usuario para la personalización de contenido o el cumplimiento normativo.
  • Lógica de la Aplicación:
    • Generación de URL: Las aplicaciones necesitan X-Forwarded-Host y X-Forwarded-Proto para construir URL absolutas correctas (por ejemplo, para redirecciones o enlaces dentro de la aplicación) que coincidan con la solicitud original del cliente.
    • Gestión de Sesiones: Algunos mecanismos de sesión pueden estar vinculados a direcciones IP.
    • Aplicaciones Multi-inquilino: Distinguir inquilinos basándose en el encabezado Host original.
  • Depuración y Resolución de Problemas: El encabezado Via y la cadena completa de X-Forwarded-For pueden ayudar a diagnosticar problemas de ruta de red e identificar proxies problemáticos.

Configuración de Proxy y Mejores Prácticas de Seguridad

Configurar los proxies para manejar correctamente estos encabezados es crucial.

  • Límites de Confianza: Confíe solo en las entradas X-Forwarded-For (o Forwarded) de proxies ascendentes conocidos y de confianza. Implemente lógica para analizar el encabezado, identificar las IP de proxy de confianza y derivar la verdadera IP del cliente de la entrada no confiable más a la derecha.
  • Eliminación/Sanitización de Encabezados: Para proxies orientados al exterior, considere eliminar o sanitizar los encabezados Via y cualquier encabezado X- personalizado interno para evitar la divulgación de información sobre la topología de la red interna.
  • Consistencia: Asegúrese de que todos los proxies y balanceadores de carga en una cadena estén configurados de manera consistente para añadir o establecer estos encabezados correctamente.
  • Estándar vs. Personalizado: Si bien Forwarded es el estándar, X-Forwarded-For, X-Forwarded-Host y X-Forwarded-Proto siguen siendo ampliamente utilizados. Las implementaciones a menudo soportan ambos o priorizan el encabezado Forwarded si está presente.
Actualizado: 03.03.2026
Volver a la categoría

Pruebe nuestros proxies

20,000+ proxies en 100+ países del mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.