HTTP (Hypertext Transfer Protocol) proporciona un estándar de protocolo de red que los navegadores web y los servidores utilizan para comunicarse. Es fácil reconocer esto cuando se visita un sitio web porque está escrito justo en la URL (por ejemplo, http://www.lifewire.com).
Este protocolo es similar a otros como FTP en el sentido de que es utilizado por un programa cliente para solicitar archivos desde un servidor remoto. En el caso de HTTP, suele ser un navegador web que solicita archivos HTML de un servidor web, que luego se muestran en el navegador con texto, imágenes, hipervínculos, etc.
HTTP es lo que se llama un sistema sin estado. Esto significa que, a diferencia de otros protocolos de transferencia de archivos como FTP, la conexión HTTP se cancela una vez que se ha realizado la solicitud. Por lo tanto, una vez que su navegador web envía la solicitud y el servidor responde con la página, la conexión se cierra.
Dado que la mayoría de los navegadores web son HTTP por defecto, puede escribir sólo el nombre de dominio y hacer que el navegador rellene automáticamente la parte’http://’.
Historia de HTTP
Tim Berners-Lee creó el HTTP inicial a principios de los 90 como parte de su trabajo en la definición de la World Wide Web original. Durante la década de 1990 se desplegaron ampliamente tres versiones primarias:
- HTTP 0.9 (para soportar documentos de hipertexto básicos)
- HTTP 1.0 (extensiones para soportar sitios web ricos y escalabilidad)
- HTTP 1.1 (desarrollado para abordar las limitaciones de rendimiento de HTTP 1.0, especificado en Internet RFC 2068)
La última versión, HTTP 2.0, se convirtió en un estándar aprobado en 2015. Mantiene la compatibilidad con HTTP 1.1 pero ofrece mejoras de rendimiento adicionales.
Aunque el HTTP estándar no cifra el tráfico enviado a través de una red, el estándar HTTPS se desarrolló para añadir cifrado a HTTP mediante el uso de (originalmente) Secure Sockets Layer (SSL) o (posteriormente) Transport Layer Security (TLS).
Cómo funciona HTTP
HTTP es un protocolo de capa de aplicación construido sobre TCP que utiliza un modelo de comunicación cliente-servidor. Los clientes y servidores HTTP se comunican a través de mensajes de solicitud y respuesta HTTP. Los tres tipos principales de mensajes HTTP son GET, POST y HEAD.
- Los mensajes HTTP GET enviados a un servidor contienen sólo una URL. Al final de la URL se pueden añadir cero o más parámetros de datos opcionales. El servidor procesa la parte de datos opcional de la URL, si está presente, y devuelve el resultado (una página web o un elemento de una página web) al navegador.
- HTTP POST colocan cualquier parámetro de datos opcional en el cuerpo del mensaje de solicitud en lugar de añadirlo al final de la URL.
- HTTP HEAD funciona igual que las peticiones GET. En lugar de responder con el contenido completo de la URL, el servidor devuelve sólo la información del encabezado (contenida dentro de la sección HTML).
El navegador inicia la comunicación con un servidor HTTP iniciando una conexión TCP con el servidor. Las sesiones de navegación web utilizan el puerto 80 del servidor de forma predeterminada, aunque a veces se utilizan otros puertos como el 8080.
Una vez establecida la sesión, el usuario activa el envío y recepción de mensajes HTTP visitando la página web.
Problemas con HTTP
Los mensajes transmitidos a través de HTTP pueden no ser entregados correctamente por varias razones:
- error de usuario
- mal funcionamiento del navegador o servidor web
- errores en la creación de páginas web
- fallos temporales de la red
Cuando se producen estos fallos, el protocolo captura la causa del fallo (si es posible) e informa al navegador de un código de error llamado línea/código de estado HTTP. Los errores comienzan con un cierto número para indicar qué tipo de error es.
Por ejemplo, los errores 4xx indican que la solicitud de la página no se puede completar correctamente o que la solicitud contiene una sintaxis incorrecta. Como ejemplo, 404 errores significa que la página no puede ser encontrada; algunos sitios web incluso tienen algunas páginas de error 404 personalizadas y divertidas.