Qué es HTTP y cómo funciona el protocolo de transferencia de hipertexto
Una guía completa de HTTP que abarca el ciclo petición-respuesta, la estructura de los mensajes, los métodos, los códigos de estado, las cookies, las versiones del protocolo y HTTPS. Entiende cómo HTTP impulsa el scraping web y cómo interactúan los proxies con él.
La base de la comunicación web
HTTP (Protocolo de transferencia de hipertexto) es el protocolo que sostiene la web. Cada vez que cargas una página, envías un formulario o consultas una API, HTTP rige cómo los clientes (navegadores, scrapers) y los servidores intercambian datos. Entender su funcionamiento interno es esencial para desarrolladores, ingenieros de redes y cualquiera que trabaje con proxies.
El ciclo petición-respuesta
HTTP es un protocolo de petición-respuesta. Un cliente envía una petición a un servidor, que la procesa y devuelve una respuesta. Este ciclo es la columna vertebral de todas las interacciones web. La petición y la respuesta constan cada una de tres partes: una línea de inicio, cabeceras y un cuerpo opcional.
Estructura de la petición
Una petición HTTP típica tiene este aspecto:
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
La primera línea es la línea de solicitud, que contiene el método (GET), la ruta (/index.html) y la versión del protocolo (HTTP/1.1). A continuación vienen las cabeceras, una por línea, y terminan con una línea en blanco. Después de las cabeceras aparece un cuerpo opcional, que se usa con métodos como POST.Estructura de la respuesta
El servidor responde con una línea de estado:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>...</html>
La línea de estado incluye la versión del protocolo, un código de estado (200) y una frase de motivo (OK). Las cabeceras y el cuerpo siguen el mismo patrón que la solicitud.
Métodos HTTP (verbos)
HTTP define varios métodos que indican la acción deseada sobre un recurso. Los más comunes son:
- GET – Recupera un recurso. No debería tener cuerpo. Es idempotente.
- POST – Envía datos para que se procesen. No es idempotente.
- PUT – Reemplaza un recurso por completo. Es idempotente.
- DELETE – Elimina un recurso. Es idempotente.
- HEAD – Como GET, pero devuelve solo cabeceras, sin cuerpo. Útil para comprobar metadatos.
- OPTIONS – Devuelve los métodos que admite el servidor para una URL determinada.
Al hacer scraping web, GET y POST son los que más se usan. Los proxies reenvían estas solicitudes sin cambios, pero pueden añadir o modificar cabeceras como X-Forwarded-For según la configuración.
Códigos de estado: la respuesta del servidor
Toda respuesta HTTP incluye un código de estado de tres dígitos que indica el resultado. Se agrupan en cinco clases:
- 2xx (éxito): 200 OK, 201 Created, 204 No Content.
- 3xx (redirección): 301 Moved Permanently, 302 Found, 304 Not Modified.
- 4xx (error del cliente): 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests.
- 5xx (error del servidor): 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable.
Para los scrapers, 429 es especialmente importante: indica limitación de velocidad. Los proxies pueden ayudar a distribuir las solicitudes para evitar que se activen esas respuestas.
Sin estado y cookies
HTTP por sí solo es sin estado – cada solicitud es independiente y los servidores no recuerdan interacciones anteriores. Para mantener el estado (como una sesión iniciada), se introdujeron las cookies. Un servidor envía una cabecera Set-Cookie en la respuesta, y el cliente la incluye en solicitudes posteriores mediante la cabecera Cookie. Al hacer scraping con proxies, la gestión de cookies es fundamental: cada proxy puede necesitar su propio contenedor de cookies para evitar conflictos de sesión.
Versiones de HTTP: de 1.1 a 3
HTTP/1.1, publicado en 1997, sigue usándose ampliamente. Admite conexiones persistentes, codificación de transferencia por fragmentos y cabeceras de caché. Sin embargo, sufre bloqueo de cabeza de línea, por el que una sola solicitud lenta puede retrasar otras en la misma conexión.
HTTP/2 (2015) lo abordó introduciendo la multiplexación: varias solicitudes y respuestas pueden intercalarse sobre una única conexión TCP. También usa tramas binarias en lugar de texto, y el envío anticipado del servidor (server push) permite a los servidores enviar recursos antes de que se soliciten. Para los proxies, HTTP/2 exige entender la multiplexación de conexiones y puede gestionarse de forma transparente.
HTTP/3 (2022) usa QUIC, un protocolo de transporte basado en UDP en lugar de TCP. Esto reduce aún más la latencia, mejora la multiplexación y ofrece mejor rendimiento en redes con pérdidas. Su adopción está creciendo, pero muchos proxies siguen operando a nivel de HTTP/1.1.
HTTPS: cifrado con TLS
HTTPS (HTTP Secure) encapsula HTTP en TLS (Transport Layer Security), cifrando todos los datos en tránsito. Esto evita la interceptación y la manipulación. Para el scraping web, HTTPS plantea retos: los proxies que hacen descifrado MITM (interceptando TLS) pueden ver el texto plano, pero los proxies que no descifran solo ven los datos cifrados, lo que limita la modificación de cabeceras. La mayoría de los proxies públicos admiten el paso directo de TLS, pero conviene tener cuidado si necesitas inspeccionar o modificar el contenido de la solicitud.
HTTP y proxies en el scraping web
Cuando se usa un proxy HTTP, el cliente envía solicitudes al proxy, que después las reenvía al servidor de destino. El proxy puede alterar cabeceras (por ejemplo, añadir X-Forwarded-For) o gestionar la autenticación. Entender la estructura de HTTP ayuda a diagnosticar problemas: por ejemplo, una línea de solicitud mal formada o la falta de la cabecera Host pueden causar errores. Los proxies también afectan al almacenamiento en caché y a la reutilización de conexiones. Para un scraping fiable, usa un proxy que conserve las cabeceras originales salvo que se pretenda modificarlas.
Ten siempre en cuenta la seguridad y la legalidad: los proxies públicos gratuitos a menudo los gestionan terceros y pueden registrar o modificar el tráfico. Respeta robots.txt y las condiciones del servicio. Usa conexiones HTTPS para proteger datos sensibles y no envíes nunca información privada a través de proxies que no sean de confianza.
Para saber más sobre los tipos de proxy, consulta nuestra guía de tipos de proxy. Para comprobar si tu proxy está filtrando tu IP, usa nuestra herramienta What Is My IP. Y para comprobar el anonimato de cualquier proxy, prueba el Proxy Checker.