HTTP 1.1 TE заголовок

Читая RFC2616, я наткнулся на заголовки TE и Transfer Encoding для кодирования по частям. У меня следующий вопрос по этим вопросам:

  1. Если HTTP-сервер отклоняет запрос из-за наличия заголовка TE, соответствует ли он требованиям RFC?
  2. Если HTTP-клиент отправляет запрос с TE-заголовком и списком t-кодировок и значений q, и если такое значение q равно 1, обязательно ли HTTP-серверу отправлять данные ответа с этой кодировкой, например: TE: deflat;q=0,5 gzip;q=1 (Это обязывает сервер сжимать данные сущности в gzip и отправлять их или может сервер игнорировать это и отправлять данные обычным способом?).
  3. Если HTTP-сервер не поддерживает получение фрагментированных данных (я знаю, что это противоречит RFC, но предназначено), каким может быть правильный код ответа об ошибке, который будет отправлен обратно клиенту, чтобы клиент в следующий раз не отправлял PUT запрос в клочья.

Заранее благодарим за ваш ценный вклад и ответы.

1 ответ

Решение

В RFC 7230 говорится,

Поле заголовка "TE" в запросе указывает, какие кодировки передачи
кроме порции, клиент готов принять ответ и
желает ли клиент принять поля трейлера в
кодирование передачи по частям.

Это означает, что TE является просто объявлением клиента и может быть проигнорировано следующим сервером. У сервера HTTP не должно быть оснований отклонять запрос с заголовком TE. Если сервер не поддерживает chunked, то он не поддерживает HTTP 1.1 и поэтому должен интерпретировать входящий запрос, как если бы это был запрос 1.0, и ответить соответствующим образом. Смотрите здесь.

Другие вопросы по тегам