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