Постоянное соединение в HTTP | Курс "Компьютерные сети"
Introducción a HTTP: Persistencia de Conexiones
Resumen de la Sección: En esta sección introductoria, se aborda el tema de las conexiones persistentes en HTTP, destacando la evolución del protocolo desde su versión 1.0 hasta consideraciones modernas sobre la complejidad de las páginas web actuales.
Evolución del Protocolo HTTP
- El protocolo HTTP 1.0 inicialmente funcionaba en un modelo simple de solicitud-respuesta para páginas web estáticas.
- En la actualidad, las páginas web contienen múltiples recursos (imágenes, videos, scripts), lo que requiere cargar diversos elementos además de la página principal.
Establecimiento y Uso de Conexiones TCP
- Antes de cargar recursos, es necesario establecer una conexión TCP con el servidor y realizar solicitudes HTTP para obtener los distintos elementos.
- La alternativa al método tradicional es la "persistencia de conexiones", que permite reutilizar un mismo canal TCP para descargar varios recursos sin cerrarlo.
Ventajas y Mecanismos de Persistencia en HTTP
Resumen de la Sección: Se exploran los beneficios y mecanismos asociados con el uso de conexiones persistentes en HTTP, como mejorar la velocidad de carga y optimizar el uso eficiente del ancho de banda.
Beneficios y Mecanismos
- La persistencia se conoce como "HTTP Persistent Connection" o "HTTP Keep Alive", agilizando la carga al evitar establecer nuevas conexiones repetidamente.
- El tamaño del "ventana" en TCP influye en la velocidad; mantener una conexión activa permite aumentarla gradualmente sin reiniciar desde cero.
Implementación y Consideraciones sobre Persistencia
Resumen de la Sección: Se detalla cómo implementar y gestionar conexiones persistentes en HTTP, incluyendo aspectos técnicos y prácticos para optimizar su rendimiento.
Implementación Práctica
- En versiones anteriores a 1.1, se usaba el encabezado "Connection: Keep Alive" para solicitar mantener abierta la conexión tras recibir una respuesta.
- Aunque no obligatorio en HTTP 1.1, muchos servidores aún admiten este encabezado para conservar conexiones activas por defecto.
Consideraciones Finales sobre Persistencia en Servidores Web
Resumen de la Sección: Se discuten las implicaciones finales respecto a mantener conexiones persistentes en servidores web, equilibrando ventajas con limitaciones operativas.
Balance entre Rendimiento y Recursos
- Mantener conexiones abiertas consume recursos; los servidores modernos suelen cerrarlas automáticamente si no se utilizan durante cierto tiempo.
Recursos y Protocolo HTTP
Resumen de la Sección: En esta sección, se discute cómo los recursos deben transmitirse en el mismo orden que se solicitaron. Además, se aborda la problemática que surge si hay dificultades al cargar un recurso y cómo el protocolo HTTP versión 2 resuelve este problema al permitir la numeración de solicitudes.
Recursos y Transmisión de Datos
- Los recursos deben transmitirse en el orden de solicitud; sin embargo, si hay problemas con un recurso, no se pueden enviar otros aunque estén listos.
- La transferencia de recursos del servidor al cliente puede realizarse en cualquier orden, pero la práctica de procesamiento en paralelo es poco común.
- Para aumentar la velocidad de carga de páginas web, una estrategia es utilizar múltiples conexiones HTTP para cargar diferentes tipos de recursos.
- Las conexiones persistentes HTTP permiten usar un solo TCP para varios recursos, reduciendo el tiempo de establecimiento y evitando repetir el proceso de handshake.
- En HTTP 1.0 no existía soporte para conexiones persistentes; sin embargo, en HTTP 1.1 todas las conexiones son por defecto persistentes.