HTTPQUERY
Русский

TE

Применение

Заголовок TE позволяет клиенту сообщить серверу свои предпочтения по транспортному кодированию. Сервер использует эти сведения, чтобы выбрать подходящее кодирование для Transfer-Encoding тела ответа.

В HTTP/1.1 транспортное кодирование chunked поддерживается всегда неявно и не нуждается в перечислении в заголовке TE. Заголовок служит главным образом двум целям: объявлению поддержки дополнительных алгоритмов сжатия (gzip, deflate, compress), применяемых на транспортном уровне, и сигнализации о поддержке полей Trailer.

Значение trailers особенно важно. Если клиент не объявил TE: trailers, у сервера нет гарантии, что клиент обрабатывает поля трейлера, даже когда ответ использует кодирование chunked. Поля трейлера несут метаданные вроде контрольных сумм или цифровых подписей, добавляемые после тела сообщения.

Каждая директива кодирования принимает необязательное значение качества (q) в диапазоне от 0 до 1, где большее значение выражает более сильное предпочтение. Если значение качества отсутствует, сервер считает предпочтение равным 1.

Примечание

В HTTP/2 и HTTP/3 единственное допустимое значение заголовка TE — trailers. Кодирования транспортного уровня обрабатываются уровнем фреймирования протокола.

trailers

Директива trailers сигнализирует, что клиент принимает поля Trailer в транспортном кодировании chunked. Это значение не участвует в ранжировании по значениям качества.

gzip

Директива gzip указывает, что клиент поддерживает кодирование Lempel-Ziv (LZ77) с 32-битным CRC на транспортном уровне.

deflate

Директива deflate указывает, что клиент поддерживает данные, сжатые zlib, на транспортном уровне.

compress

Директива compress указывает, что клиент поддерживает сжатие Lempel-Ziv-Welch (LZW) на транспортном уровне.

q (quality value)

Параметр q присваивает каждому предпочтению кодирования относительный вес. Значения варьируются от 0 (неприемлемо) до 1 (наиболее предпочтительно). Сервер использует значения качества для выбора наилучшего транспортного кодирования.

Пример

Клиент объявляет поддержку полей трейлера и транспортного кодирования deflate. Значение качества 0.5 даёт deflate более низкий приоритет по сравнению с неявным значением 1 по умолчанию для остальных перечисленных кодирований.

TE: trailers, deflate;q=0.5

Клиент предпочитает транспортное кодирование gzip, а также принимает передачу с compress с более низким приоритетом.

TE: gzip, compress;q=0.7

Клиент сигнализирует только о поддержке трейлеров. Это стандартная форма, используемая с соединениями HTTP/2.

TE: trailers