HTTP-соединение: Keep-Alive

Я смотрел спецификацию HTTP 1.1 и искал в части спецификации, относящейся к заголовку «Соединение». Я заметил, что для заголовка «Соединение» указан единственный токен «закрыть». Немного покопавшись, я обнаружил, что токен Keep-Alive, который находится в заголовке Connection во многих реализациях сервера, включая Vim, использующий Apache 2.2.3, остался от HTTP 1.0. Учитывая широкое распространение HTTP 1.1, насколько ценным является добавление Keep-Alive и подобных токенов, унаследованных от HTTP 1.0?


person PatTheGamer    schedule 03.07.2012    source источник


Ответы (1)


Некоторая ценность; зависит от конкретного использования.

В HTTP 1.1 все соединения считаются постоянными, если не указано иное.

На практике реализации делают то, что хотят:

Когда клиент отправляет другой запрос [после HTTP-соединения: Keep-Alive], он использует то же соединение. Это будет продолжаться до тех пор, пока клиент или сервер не решат, что диалог окончен, и один из них не разорвет соединение.

Таким образом, разработчики клиентов и серверов действительно должны определять, как долго они будут поддерживать TCP-соединение открытым. Например,

Тайм-аут соединения по умолчанию для Apache 2.0 httpd [2] составляет всего 15 секунд [3], а для Apache 2.2 - всего 5 секунд.

Похоже, SPDY ляжет в основу будущего HTTP 2.0. Это кардинально меняет обработку соединения.

Источники:

http://en.wikipedia.org/wiki/HTTP_persistent_connection#HTTP_1.1

http://en.wikipedia.org/wiki/SPDY

http://en.wikipedia.org/wiki/HTTP_2.0

http://tools.ietf.org/html/draft-ietf-httpbis-http2-08

person Homer6    schedule 21.11.2013