El protocolo de transferencia de hipertexto se utiliza para cargar páginas en Internet mediante hiperenlaces.
Después de leer este artículo podrás:
Contenido relacionado
Ataque de inundación HTTP
TCP/IP
Protocolo de datagrama de usuarios (UDP)
Firewall de aplicaciones web (WAF)
Malware
Suscríbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar enlace del artículo
El protocolo de transferencia de hipertexto (HTTP) constituye los cimientos de la red mundial, y se utiliza para cargar páginas web mediante enlaces de hipertexto. HTTP es un protocolo de capa de aplicación diseñado para transferir información entre los dispositivos conectados de la red, y se ejecuta sobre otras capas del conjunto de protocolos de la red. Un flujo típico sobre HTTP implica una máquina cliente que realiza una solicitud a un servidor, que a continuación envía un mensaje de respuesta.
Una solicitud HTTP es la forma en que las plataformas de comunicación de Internet, como los navegadores web, piden la información que necesitan para cargar un sitio web.
Cada solicitud HTTP realizada por Internet lleva consigo una serie de datos codificados que contienen diferentes tipos de información. Una solicitud HTTP típica contiene:
Profundicemos en el funcionamiento de estas solicitudes y en cómo se puede utilizar el contenido de una solicitud para compartir información.
Un método HTTP, a veces denominado verbo HTTP, indica la acción que la solicitud HTTP espera del servidor consultado. Por ejemplo, dos de los métodos HTTP más comunes son "GET" y "POST"; una solicitud "GET" espera que se le devuelva información (normalmente en forma de página web), mientras que una solicitud "POST" suele indicar que el cliente está enviando información al servidor web (como información de un formulario, por ejemplo, un nombre de usuario y una contraseña enviados).
Los encabezados HTTP contienen información de texto almacenada en pares clave-valor, y se incluyen en cada solicitud HTTP (y en la respuesta, sobre lo que hablaremos más adelante). Estos encabezados comunican información básica, como por ejemplo qué navegador utiliza el cliente y qué datos solicita.
Ejemplo de encabezados de solicitud HTTP de la pestaña de red de Google Chrome:
El cuerpo de una solicitud es la parte que contiene el "cuerpo" de la información que está transfiriendo la solicitud. El cuerpo de una solicitud HTTP contiene toda la información que se envía al servidor web, como un nombre de usuario y una contraseña, o cualquier otro dato introducido en un formulario.
Una respuesta HTTP es lo que los clientes web (normalmente los navegadores) reciben de un servidor de Internet en respuesta a una solicitud HTTP. Estas respuestas comunican información valiosa basada en lo que se pidió en la solicitud HTTP.
Una respuesta HTTP típica contiene:
Desglosemos estos elementos:
Los códigos de estado HTTP son códigos de 3 dígitos que se suelen utilizar para indicar si una solicitud HTTP se ha completado con éxito. Los códigos de estado se dividen en los siguientes 5 bloques:
Las "xx" hacen referencia a diferentes números entre 00 y 99.
Los códigos de estado que empiezan por el número "2" indican que la solicitud se ha realizado correctamente. Por ejemplo, después de que un cliente solicite una página web, las respuestas más habituales tienen un código de estado "200 OK", que indica que la solicitud se ha completado correctamente.
Si la respuesta empieza con un "4" o un "5", significa que se ha producido un error y que la página web no se mostrará. Un código de estado que empieza con un "4" indica un error del lado del cliente (es muy habitual encontrarse un código de estado "404 NOT FOUND’ cuando cometemos un error tipográfico al escribir una URL). Un código de estado que empieza con un "5" indica que algo ha fallado en el lado del servidor. Los códigos de estado también pueden empezar con un "1" o un "3", que indican, respectivamente, una respuesta informativa y una redirección.
Al igual que una solicitud HTTP, una respuesta HTTP viene con encabezados que transmiten información importante, como el idioma y el formato de los datos que se envían en el cuerpo de la respuesta.
Ejemplo de encabezados de respuesta HTTP de la pestaña de red de Google Chrome:
Las respuestas HTTP correctas a solicitudes "GET" normalmente tienen un cuerpo que contiene la información solicitada. En la mayoría de las solicitudes web, son los datos HTML que un navegador web convertirá en una página web.
Ten en cuenta que HTTP es un protocolo "sin estado", lo que significa que cada comando se ejecuta independientemente de cualquier otro comando. En la especificación original, las solicitudes HTTP creaban y cerraban cada una conexión TCP. En las versiones más recientes del protocolo HTTP (HTTP 1.1 y superiores), la conexión persistente permite que varias solicitudes HTTP pasen por una conexión TCP persistente, lo cual mejora el consumo de recursos. En el contexto de los ataques DoS o DDoS, las solicitudes HTTP en grandes cantidades pueden utilizarse para montar un ataque contra un dispositivo objetivo, y se consideran parte de los ataques a la capa de aplicación o a la capa 7.