HTTP Accept-Encoding и отправка некодированных данных - PullRequest
5 голосов
/ 14 июля 2011

Я строю модуль для сжатия вывода HTTP.Читая spec , я не нашел четкого различия по нескольким вещам:

Accept-Encoding:

Должно ли это рассматриваться так же, какAccept-Encoding: * или как будто нет заголовка?

Или что, если я не поддерживаю gzip, но я получаю такой заголовок:

Accept-Encoding: gzip

Должен ли я вернуть ошибку 406 или просто вернуть незашифрованные данные?

РЕДАКТИРОВАТЬ:

Я прочитал несколько раз спецификации.В нем упоминается мой первый случай, но он не определяет, каким должно быть поведение сервера.

Должен ли я рассматривать этот случай, как если бы заголовок отсутствовал?Или я должен вернуть ошибку 406, потому что нет способа кодировать что-либо, учитывая значение поля ('' не является допустимой кодировкой).

1 Ответ

7 голосов
/ 15 июля 2011

Все записано в Спецификация: 14.3 Accept-Encoding :

Специальный символ "*" в поле Accept-Encoding соответствует любой доступной кодировке контента, неявно указан в поле заголовка.

Если в запросе присутствует поле Accept-Encoding и если сервер не может отправить ответ, который является приемлемым в соответствии с заголовком Accept-Encoding, то сервер ДОЛЖЕН отправитьсообщение об ошибке с кодом состояния 406 (неприемлемо).

edit:

Если значение поля Accept-Encoding пусто, то допустима только кодировка «identity».

В этом случае, если «идентичность» является одной из доступных кодировок контента, то серверу СЛЕДУЕТ использовать кодирование контента «идентичности», если только он не имеет дополнительной информации, которая имеет смысл для другой кодировки контента.клиент.

Что такое «идентификатор»

идентификатор
кодировка по умолчанию (идентификатор);использование никакой трансформации вообще.Это кодирование содержимого используется только в заголовке Accept-Encoding и НЕ ДОЛЖНО использоваться в заголовке Content-Encoding.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...