Características clave:
* cliente-servidor: Un cliente inicia la comunicación enviando una solicitud a un servidor. El servidor responde a la solicitud.
* Respuesta a la solicitud: La comunicación se basa en un ciclo de solicitud de solicitud. Cada solicitud del cliente genera una respuesta única desde el servidor.
* sin estado: Cada solicitud es independiente de las solicitudes anteriores. El servidor no retiene información sobre las interacciones pasadas con el cliente. (Las sesiones se manejan a través de mecanismos como las cookies, no inherentes al protocolo en sí).
* Gestión de la conexión: Http/1.1 introduce conexiones persistentes (mantener alive). Esto permite que se envíen múltiples solicitudes y respuestas a través de una sola conexión TCP, mejorando la eficiencia. El encabezado 'Connection' determina si la conexión debe mantenerse viva después de una respuesta. Si no se especifica, el comportamiento predeterminado depende de la configuración del servidor, pero generalmente es para mantener viva la conexión.
* almacenado en caché: HTTP/1.1 admite mecanismos de almacenamiento en caché para mejorar el rendimiento. Las respuestas pueden incluir encabezados que indican si se pueden almacenar en caché y cómo.
* encabezados: Tanto las solicitudes como las respuestas incluyen encabezados que proporcionan metadatos, como tipo de contenido, longitud, fecha y más. Los encabezados son pares de valores clave.
* Métodos: HTTP define varios métodos (verbos) para especificar el tipo de solicitud, que incluye:obtener, publicar, poner, eliminar, cabeza, opciones, etc.
* Códigos de estado: El servidor responde con un código de estado de tres dígitos que indica el resultado de la solicitud (por ejemplo, 200 OK, 404 no encontrado, 500 error de servidor interno).
* Contenido: La respuesta generalmente incluye el contenido solicitado (por ejemplo, una página HTML, una imagen, datos JSON).
Estructura de una solicitud:
`` `` ``
Método /ruta http /1.1
Anfitrión:Ejemplo.com
Agente de usuario:Mozilla/5.0 ...
Aceptar:texto/html, aplicación/xhtml+xml, ...
Conexión:mantener alive
... otros encabezados ...
[Solicitud de cuerpo (opcional)]
`` `` ``
Estructura de una respuesta:
`` `` ``
Http/1.1 200 OK
Fecha:martes, 29 de noviembre 2023 16:03:22 GMT
Servidor:Apache/2.4.54
Tipo de contenido:texto/html; Charset =UTF-8
Contenido-longitud:1234
Conexión:mantener alive
... otros encabezados ...
[Cuerpo de respuesta]
`` `` ``
Limitaciones de http/1.1:
* Bloqueo del cabecera: Debido a que las solicitudes se envían secuencialmente a través de una sola conexión, un recurso de carga lenta puede bloquear las solicitudes posteriores, lo que impulsa el rendimiento. Este es un inconveniente significativo, abordado por protocolos posteriores como HTTP/2 y HTTP/3.
* Overhead: La naturaleza basada en el texto y los encabezados detallados agregan algo de sobrecarga en comparación con los protocolos binarios más nuevos.
HTTP/1.1 mejoró significativamente su predecesor, HTTP/1.0, pero sus limitaciones allanaron el camino para el desarrollo de protocolos más eficientes como HTTP/2 y HTTP/3. La comprensión de HTTP/1.1 sigue siendo valiosa, sin embargo, ya que muchos sistemas aún lo usan, y comprender sus principios es crucial para comprender la evolución de la Web.