Un proxy HTTP es un servidor que recibe las solicitudes HTTP de un cliente, las reenvía al servidor de destino y devuelve las respuestas. Para sitios HTTPS, el cliente utiliza el método CONNECT para abrir un túnel a través del proxy, que luego retransmite el tráfico cifrado sin poder leerlo.
Un proxy HTTP puede leer e incluso modificar el tráfico HTTP no cifrado que pasa a través de él, por lo que los datos sensibles deben viajar a través de HTTPS, donde el proxy solo crea un túnel para el tráfico cifrado.
Cómo Maneja un Proxy HTTP una Solicitud
- El cliente envía su solicitud al proxy en lugar del sitio web. Para HTTP simple utiliza la URL completa del destino; para HTTPS envía una
CONNECT host:443solicitud. - Si el proxy requiere un inicio de sesión, el cliente añade un encabezado
Proxy-Authorization. - Para HTTP, el proxy reenvía la solicitud al destino. Para CONNECT, responde con un estado 2xx y cambia a modo túnel.
- La respuesta viaja de regreso a través del proxy al cliente.
Proxies HTTP Directos, Inversos y Transparentes
- Proxy directo: actúa en nombre de los clientes y puede ocultar su identidad de los sitios web. Los usuarios pueden configurarlo para ocultar su dirección IP mientras navegan.
- Proxy inverso: actúa en nombre de los servidores web, manejando tareas como el balanceo de carga y el almacenamiento en caché de contenido estático.
- Proxy transparente (interceptador): colocado en la ruta de la red, por lo que los clientes no lo configuran y pueden no saber que está allí.
Proxy HTTP vs. Proxy SOCKS5
| Proxy HTTP | Proxy SOCKS5 | |
|---|---|---|
| Lo que entiende | Solicitudes y respuestas HTTP | Nada por encima de la capa de transporte; retransmite datos sin leerlos como HTTP |
| Tráfico que transporta | Tráfico web, con HTTPS pasado a través de un túnel CONNECT | TCP y UDP para cualquier aplicación que soporte SOCKS |
Puede añadir encabezados como Via | Sí | No |
| En curl | Tipo predeterminado cuando el proxy no tiene esquema | Establecido con una socks5:// o socks5h:// URL de proxy |
Almacenamiento en Caché
Algunos proxies HTTP almacenan respuestas para reducir el tráfico que sale de una red. MDN los llama cachés de proxy, un tipo de caché compartida. Los sitios marcan respuestas personalizadas con Cache-Control: private para que las cachés compartidas no las almacenen. Las respuestas HTTPS generalmente pasan a través de un proxy en un túnel, por lo que en muchos casos el proxy no puede almacenarlas en caché.
Lo Que Significa para el Web Scraping
- HTTP es a menudo el predeterminado: curl trata un proxy dado sin un esquema, como
proxy.example.com:8080, como un proxy HTTP. Consulta configuraciones de proxy para ver dónde los clientes almacenan esto. - Los encabezados pueden revelar el proxy: los proxies pueden añadir un encabezado
Via, y algunos añaden X-Forwarded-For con la IP original del cliente. Verifica lo que un proxy envía antes de confiar en él para ocultar tu dirección.