Постоянное соединение в HTTP | Курс "Компьютерные сети"

Постоянное соединение в 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.
Video description

Постоянное соединение в протоколе HTTP. Лекции по курсу "Компьютерные сети" - https://goo.gl/0aIOuf Страница курса - http://www.asozykin.ru/courses/networks_online Постоянное соединение HTTP (HTTP keep-alive, HTTP persistent connection) - использование одного TCP-соединения для загрузки нескольких ресурсов Преимущества постоянного соединения: - Сокращение накладных расходов на установку TCP-соединения. - Нет необходимости каждый раз начинать передачу данных с маленьким размером окна TCP (медленный старт). В стандарте HTTP 1.0 возможности использовать постоянное соединение нет. После публикации стандарта HTTP 1.0 был предложен заголовок "Connection: keep-alive". Пример использования заголовка "Connection: keep-alive": HTTP-запрос: GET /courses/networks HTTP/1.0 Host: www.asozykin.ru Connection: keep-alive HTTP-ответ: HTTP/1.0 200 OK Server: nginx Content-Type: text/html; charset=UTF-8 Content-Length: 5161 Connection: keep-alive В стандарте HTTP 1.1 по умолчанию все соединения постоянные. Технология конвейерной обработки HTTP (pipelining) - отправка сразу нескольких HTTP запросов через постоянное соединение не дожидаясь ответа. Сервер также передает сразу несколько запрошенных ресурсов. Для ускорения загрузки Web-страниц браузеры открывают сразу несколько соединений с Web-сервером. Каждое такое соединение может быть постоянным и использовать конвейерную обработку. Лекция "Протокол HTTP" - https://youtu.be/RlccXUx4LVw Лекция "Протокол TCP" - https://youtu.be/CKUOb4htnB4 Лекция "Протокол TCP: скользящее окно" - https://youtu.be/hd6QNXK5rPk Лекция "Протокол TCP: соединение" - https://youtu.be/7DitlqcesKI Лекция "Протокол TCP: управление перегрузкой" - https://youtu.be/lGUPQjvSMeo Практические занятия по курсу "Компьютерные сети" - https://goo.gl/YP3l83 Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках: https://goo.gl/kW93MA