Momotik.ru

Народный проект

Метки: Http persistent connection, http persistent connection java example, http persistent connections.

HTTP
Persistence · Сжатие · HTTPS
Методы
OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH
Заголовки
Cookie · ETag · Location · Referer
DNT · X-Forwarded-For
Коды состояния
301 Moved permanently
302 Found
303 See Other
403 Forbidden
404 Not Found
Шаблон: ПросмотрОбсуждениеПравить

HTTP persistent connection, также называемые HTTP keep-alive, или повторное использование соединений HTTP — использование одного TCP соедниения для отправки и получения множественных HTTP запросов и ответов вместо открытия нового соединения для каждой пары запрос-ответ.

Функционал

При работе по протоколу HTTP 1.0 с подобным типом соединений нет официальной спецификации. По сути, это дополнение к существующему протоколу. Если браузер команду keep-alive, то он дополняет заголовок запроса следующим:

Connection: Keep-Alive

Затем, когда сервер получает такой запрос и генерирует ответ, то он также добавляет в заголовок ответа

 Connection: Keep-Alive

После этого соединение не разрывается, а остаётся открытым. Когда клиент отправляет ещё один запрос, то он использует это же соединение. Так будет продолжаться до тех пор, пока клиент или сервер не решат, что обмен окончен, и одна из сторон завершает соединение.

При работе по HTTP 1.1 все соединения считаются постоянными, если не обозначено иное.[1] При этом постоянные соединения не используют сообщения keepalive, а просто позволяют передачу множественных запросов в одном и том же соединении. Тем не менее, время ожидания по умолчанию в httpd для Apache 2.0[2] составляет всего 15 секунд, а для Apache 2.2 лишь 5 секунд.[3] Преимуществом короткого таймаута является возможность быстрее передать клиенту множественным соединением несколько компонентов веб-страницы, а не более долгим методом инициации нескольких серверных процессов или потоков.[4]

Примечания

  1. Persistent HTTP Connections in RFC 2616 "Hypertext Transfer Protocol -- HTTP/1.1"
  2. Apache HTTP Server - KeepAlive Directive
  3. Apache HTTP Server 2.2 - KeepAliveTimeout Directive
  4. Httpd/KeepAlive. Docforge. Проверено 30 января 2010.

Ссылки

  • RFC 2616 (HTTP/1.1), 8.1 Persistent Connections
  • Persistent Connection Behavior of Popular Browsers (dated)
  • Apache Keep-Alive Support
  • Network Performance Effects of HTTP/1.1, CSS1, and PNG

Tags: Http persistent connection, http persistent connection java example, http persistent connections.