Кодирования передачи Transfer Codings

Кодирования передачи Transfer Codings. Значения кодирования передачи используются для указания преобразования кодирования, которое было или должно быть применено к телу объекта entity-body в целях гарантирования безопасной передачи по сети. Оно отличается от кодирования содержимого тем, что кодирование передачи - это свойство сообщения, а не первоначального объекта. transfer-coding chunked transfer-extension transfer-extension token Все значения кодирования передачи transfer-coding не чувствительны к регистру.

HTTP 1.1 использует значения кодирования передачи transfer-coding в поле заголовка Transfer-Encoding.

Кодирования передачи - это аналоги значений Content-Transfer-Encoding MIME, которые были разработаны для обеспечения безопасной передачи двоичных данных при использовании 7-битного обслуживания передачи.

Однако безопасный транспорт имеет другое предназначение для чисто 8-битного протокола передачи.

В HTTP единственная опасная характеристика тела сообщения вызвана сложностью определения точной длины тела сообщения, или желанием шифровать данные при пользовании общедоступным транспортом. Кодирование по кускам chunked encoding изменяет тело сообщения для передачи его последовательностью кусков, каждый из которых имеет собственный индикатор размера, сопровождаемым опциональным завершителем, содержащим поля заголовка объекта.

Это позволяет динамически создаваемому содержимому передаваться вместе с информацией, необходимой получателю для проверки полноты получения сообщения. Chunked-Body chunk 0 CRLF footer CRLF chunk chunk-size chunk-ext CRLF chunk-data CRLF hex-no-zero HEX за исключением 0 chunk-size hex-no-zero HEX chunk-ext chunk-ext-name chunk-ext-value chunk-ext-name token chunk-ext-val token quoted-string chunk-data chunk-size OCTET footer entity-header Кодирование по кускам chunked encoding оканчивается куском нулевого размера, следующим за завершителем, оканчивающимся пустой строкой.

Цель завершителя состоит в эффективном методе обеспечения информации об объекте, который сгенерирован динамически приложения не должны посылать в завершителе поля заголовка, которые явно не предназначены для использования в завершителе, такие как Content-MD5 или будущие расширения HTTP для цифровых подписей и других возможностей.

Все HTTP 1.1 приложения должны быть в состоянии получать и декодировать кодирование передачи по кускам chunked transfer coding, и должны игнорировать расширения кодирования передачи, которые они не понимают. Серверу, который получил тело объекта со значением кодирования передачи, которое он не понимает, следует возвратить ответ с кодом 501 Не реализовано, Not Implemented и разорвать соединение.

Сервер не должен посылать поля кодирования передачи transfer-coding HTTP 1.0 клиентам. 3.7