El Protocolo de transferencia de hipertexto (HTTP) es la base de la comunicación de datos en la World Wide Web. Define cómo se formatean y transmiten los mensajes, y cómo responden los servidores web y los navegadores a diversos comandos. HTTP funciona sobre TCP/IP, normalmente utilizando el puerto 80 para conexiones no cifradas y el puerto 443 para conexiones cifradas (HTTPS). Permite a los clientes (como los navegadores web) solicitar recursos (como documentos HTML, imágenes o scripts) de los servidores web y recibir respuestas que incluyen el contenido solicitado junto con información de estado.
El protocolo HTTP funciona paso a paso a través de una serie de interacciones entre un cliente (por ejemplo, un navegador web) y un servidor (por ejemplo, un servidor web). El proceso comienza cuando el cliente envía un mensaje de solicitud HTTP al servidor. Esta solicitud especifica el recurso (por ejemplo, la URL de una página web) al que el cliente desea acceder y puede incluir encabezados adicionales que proporcionan información sobre el cliente o parámetros de solicitud. Luego, el servidor procesa la solicitud, recupera el recurso solicitado y construye un mensaje de respuesta HTTP que contiene los datos del recurso junto con metadatos como códigos de estado (por ejemplo, 200 OK o 404 No encontrado).
Un sitio web HTTP funciona ofreciendo contenido y recursos a los clientes (navegadores web) que se conectan a él mediante protocolos HTTP o HTTPS. Cuando un usuario ingresa la URL de un sitio web en un navegador, el navegador envía una solicitud HTTP al servidor web que aloja el sitio. El servidor responde enviando documentos HTML, imágenes, scripts, hojas de estilo y otros recursos necesarios para representar la página web en el navegador del usuario. Este proceso implica múltiples solicitudes y respuestas HTTP para cada elemento que compone la página web, lo que garantiza que todo el contenido necesario se entregue y muestre correctamente.
Las conexiones HTTP funcionan estableciendo una conexión TCP entre el cliente y el servidor. El cliente inicia la conexión enviando un paquete TCP SYN al servidor, que responde con un paquete SYN-ACK. Una vez establecida la conexión, los mensajes HTTP (solicitudes y respuestas) se transmiten a través de esta conexión TCP. Después de transmitir los datos necesarios, cualquiera de las partes puede cerrar la conexión o mantenerla abierta para solicitudes posteriores, dependiendo de la versión HTTP y las configuraciones del servidor/cliente.
Una solicitud HTTP comienza cuando un cliente (por ejemplo, un navegador web) envía un método HTTP (por ejemplo, GET, POST, PUT) junto con una URL (localizador uniforme de recursos) a un servidor. Este método de solicitud especifica la acción que el cliente desea que realice el servidor en el recurso especificado. Además, la solicitud puede incluir encabezados que proporcionen información adicional sobre la solicitud, como el tipo de contenido que el cliente puede aceptar o las credenciales de autenticación. Una vez que el servidor recibe la solicitud, la procesa según el método y la URL especificados, recupera el recurso solicitado y prepara una respuesta HTTP para enviarla al cliente.