Explicado
Un proxy HTTP es el tipo más común de servidor proxy. Entiende HTTP en la capa de aplicación: cuando tu cliente envía una solicitud, el proxy puede leer la URL, las cabeceras y (para HTTP sin cifrar) el cuerpo, antes de reenviar la solicitud al destino. Para HTTPS, el proxy utiliza el método CONNECT para establecer un túnel TCP hacia el destino, tras lo cual simplemente retransmite bytes cifrados sin ver el contenido.
La mayoría de los servicios de proxy comerciales, incluidos los proveedores residenciales, ISP y de centros de datos, exponen endpoints de proxy HTTP porque todos los clientes y bibliotecas HTTP los admiten de forma nativa. Configurar las variables de entorno `HTTP_PROXY` y `HTTPS_PROXY`, pasar `proxies={...}` a `requests` de Python, o configurar un indicador de lanzamiento en Playwright funcionan de forma inmediata con URLs de proxy HTTP como `http://user:pass@gate.shifter.io:10000`.
La diferencia entre HTTP y SOCKS5 es principalmente arquitectónica. Los proxies HTTP operan en la capa de aplicación (pueden analizar HTTP); SOCKS5 opera en la capa de transporte (solo reenvía bytes TCP/UDP). Para el scraping HTTPS la diferencia es casi cosmética, ya que ambos terminan tunelizando bytes cifrados, y el soporte de proxy HTTP es más universal en las herramientas.
Cómo funciona
Para HTTP sin cifrar, tu cliente envía la solicitud completa al proxy (`GET http://example.com/path HTTP/1.1` con URL absoluta), el proxy lee la URL, abre una conexión al destino, reenvía la solicitud y retransmite la respuesta de vuelta. Para HTTPS, el cliente primero envía una solicitud `CONNECT example.com:443` al proxy, el proxy abre un túnel TCP hacia el destino, y a partir de ese momento el cliente y el servidor se comunican mediante TLS de extremo a extremo a través del proxy, que simplemente retransmite bytes cifrados.
La autenticación generalmente ocurre a través de la cabecera `Proxy-Authorization` (autenticación básica con usuario:contraseña) o codificando las credenciales en la URL del proxy (`http://user:pass@host:port`). Los parámetros de geolocalización y sesión en los servicios comerciales se codifican típicamente en el nombre de usuario (`customer-USER-country-us-session-12345`).