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

19.7.1. Совместимость с постоянными соединениями, определяемыми HTTP/1.0

Некоторые клиенты и серверы могут желать быть совместимыми с некоторыми предыдущими реализациями постоянных подключений в HTTP/1.0 клиенты и серверы. О постоянных подключениях в HTTP/1.0 нужно явно договориться, поскольку они не поведение значения по умолчанию. HTTP/1.0 экспериментальные реализации постоянных подключений является дефектным, и новые средства в HTTP/1.1 проектированы, чтобы исправить эти проблемы. Проблема состояла в том, что некоторые существующие 1.0 клиента могут отправлять Keep-Alive прокси-серверу, который не понимает Connection, который тогда ошибочно отправил бы его следующему прибывающему серверу, который установит подключение Keep-Alive и результат в зависнувшем HTTP/1.0 прокси, ждущий близкого на ответе. Результат состоит в том, что HTTP/1.0 клиенты должен быть предотвращен от использования Keep-Alive когда говорящий с прокси.

Однако, говоря с прокси самое важное использование постоянных подключений, так, чтобы запрещение было ясно недопустимо. Поэтому, мы нуждаемся в некотором другом механизме для того, чтобы указать, что постоянное подключение задано, который безопасен использовать, даже когда говорящий со старым прокси, который игнорирует Connection. Постоянные подключения — значение по умолчанию для HTTP/1.1 сообщения; мы представляем новое ключевое слово (Connection: близко) для того, чтобы объявить непостоянство.

Следующее описывает оригинал HTTP/1.0 форма постоянных подключений.

Когда он подключается к серверу происхождения, клиент HTTP МОЖЕТ отправить Keep-Alive connection-token в дополнение к Сохранению connectiontoken:

Connection: Keep-Alive

HTTP/1.0 сервер тогда ответил бы подключением Keep-Alive, которое token и клиент могут продолжить с HTTP/1.0 (или Keep-Alive) постоянное подключение.

HTTP/1.1 сервер может также установить постоянные подключения с HTTP/1.0 клиенты по получении подключения Keep-Alive token.

Однако, постоянное подключение с HTTP/1.0 клиент не может использовать chunked кодирование передачи, и поэтому ДОЛЖНО использовать Content-Length для того, чтобы отметить заканчивающуюся границу каждого сообщения.

Клиент не ДОЛЖЕН отправить подключению Keep-Alive token прокси-серверу, поскольку HTTP/1.0 прокси-серверы не повинуется правилам HTTP/1.1 для того, чтобы разобрать поле заголовка Connection.

19.7.1.1. Заголовок Keep-Alive

Когда Keep-Alive, connection-token был передан с запросом или ответом, поле заголовка Keep-Alive, МОЖЕТ также быть включен. Поле заголовка Keep-Alive принимает следующую форму:

Keep-Alive-header = "Keep-Alive" ":" 0# keepalive-param

keepalive-param = param-name "=" value

Заголовок самого Keep-Alive является опциональным, и используется, только если parameter отправляют. HTTP/1.1 не определяет параметров.

Если заголовок Keep-Alive отправляют, соответствующее подключение, token ДОЛЖЕН быть передан. Заголовок Keep-Alive ДОЛЖЕН быть проигнорирован если получено без подключения token.

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