Los protocolos HTTP y HTTPS funcionan en un modelo de cliente-servidor basado en solicitudes y respuestas, y son responsables de la comunicación y transferencia de datos en la web (www). En este modelo, el cliente suele ser el navegador, mientras que el servidor es una aplicación que ejecuta una página web.
El cliente envía una solicitud HTTP al servidor, y este responde con una respuesta HTTP, que siempre contiene información sobre la ejecución de la solicitud y, en la mayoría de los casos, el contenido solicitado (texto, imágenes, archivos HTML, etc.).
En el ejemplo anterior, el navegador actúa como un user agent típico. Todo software que pueda procesar y mostrar información de Internet entra en esta categoría, como las aplicaciones móviles o los robots de los motores de búsqueda que rastrean la red.
HTTP y su funcionamiento
El protocolo HTTP se encuentra en la capa de aplicación del modelo TCP/IP, por lo que requiere un protocolo de transporte confiable para funcionar. La mayoría de las veces utiliza TCP, aunque también puede emplear otros como UDP o SSDP.
Los recursos HTTP se acceden mediante URLs (direcciones web). El prefijo http
o https
al inicio de una URL indica qué protocolo se está utilizando. Las URL, los documentos HTML y los enlaces forman la red interconectada de datos que conocemos como Internet.
Solicitudes y respuestas HTTP
Una solicitud HTTP tiene la siguiente estructura:
- Línea de solicitud: aquí va el comando (método) como
GET
,POST
,HEAD
,OPTIONS
,PUT
,DELETE
,TRACE
oCONNECT
, según la acción deseada.
Ejemplo:GET /images/ejemplo.jpg HTTP/1.1
- Encabezados (headers): permiten afinar la petición, por ejemplo:
Accept-Language: es
(para recibir la respuesta en español). - Línea en blanco (separador)
- Cuerpo del mensaje (opcional).
Una respuesta HTTP sigue esta estructura:
- Línea de estado, por ejemplo:
HTTP/1.1 200 OK
(indica que la solicitud fue correcta). - Encabezados de respuesta.
- Línea en blanco.
- Cuerpo de la respuesta (opcional).
¿Qué diferencia hay con HTTPS?
La principal diferencia es que HTTPS añade una capa de seguridad gracias al protocolo SSL/TLS, que cifra la comunicación entre cliente y servidor.
Los sitios que requieren inicio de sesión con contraseña o donde se realizan transacciones financieras deben usar HTTPS. Los navegadores marcan un sitio como confiable cuando este tiene un certificado digital emitido por una autoridad reconocida (como VeriSign o Microsoft).
Al validar el certificado, el navegador muestra en la barra de direcciones que la conexión es segura, normalmente con un candado y el prefijo https://
.