RFC: 2068
Оригинал: Hypertext Transfer Protocol - HTTP/1.1
Другие версии: RFC 2616
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Алексей Симонов

8.1.2. Общее описание

Значительное отличие HTTP/1.1 от более ранних версий HTTP состоит в том, что постоянные соединения являются заданным по умолчанию поведением любого HTTP соединения. То есть если не обозначено иного, клиент может считать, что сервер поддержит постоянное соединение.

Постоянные соединения обеспечивают механизм, согласно которому клиент и сервер могут сообщить о разрыве TCP соединения. Это сигнализируется при помощи использования поля заголовка Connection. При получении сообщения о разрыве соединения клиент НЕ ДОЛЖЕН посылать больше запросов по этому соединению.

8.1.2.1. Обсуждение (Negotiation)

HTTP/1.1 сервер МОЖЕТ считать, что HTTP/1.1 клиент не предполагает поддерживать постоянное соединение, если посланный в запросе заголовок Connection содержит лексему соединения (connection-token) "close". Если сервер решает закрыть соединение немедленно после посылки ответа, то ему СЛЕДУЕТ послать заголовок Connection, который содержит лексему соединения (connection-token) "close".

HTTP/1.1 клиент МОЖЕТ ожидать, что соединение останется открытым, но должен решить оставлять ли его открытым на основании того, содержит ли ответ сервера заголовок Connection с лексемой соединения "close". В случае, если клиент не хочет поддерживать соединение для последующих запросов, ему СЛЕДУЕТ послать заголовок Connection, содержащий лексему соединения "close".

Если клиент или сервер посылает лексему закрытия соединения "close" в заголовке Connection, то запрос становится последним в соединении.

Клиентам и серверам НЕ СЛЕДУЕТ считать, что постоянное соединение поддерживается HTTP версиями, меньшими чем 1.1, если это не указано явно. Смотрите раздел 19.7.1 с более подробной информацией о обратной совместимости с HTTP/1.0 клиентами.

Чтобы соединение оставалось постоянным, все сообщения, передаваемые по нему должны иметь самоопределенную (self-defined) длину сообщения (то есть, не определяемую закрытием соединения), как описано в разделе 4.4.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.