TE
Verwendung
Der Header TE erlaubt es einem Client, dem Server seine Präferenzen für Transfer-Codierungen mitzuteilen. Der Server nutzt diese Information, um eine passende Codierung für das Transfer-Encoding des Antwort-Bodys zu wählen.
In HTTP/1.1 wird die chunked-Transfer-Codierung stets implizit unterstützt und muss im TE-Header nicht aufgeführt werden. Der Header dient in erster Linie zwei Zwecken: der Ankündigung der Unterstützung zusätzlicher Komprimierungsverfahren (gzip, deflate, compress) auf Transferebene und der Signalisierung der Unterstützung von Trailer-Feldern.
Der Wert trailers ist besonders wichtig. Ohne dass der Client TE: trailers angibt, hat ein Server keine Gewissheit, dass der Client Trailer-Felder verarbeitet, selbst wenn die Antwort die chunked-Codierung verwendet. Trailer-Felder transportieren Metadaten wie Prüfsummen oder digitale Signaturen, die nach dem Nachrichten-Body angehängt werden.
Jede Codierungsdirektive akzeptiert einen optionalen Qualitätswert (q) im Bereich von 0 bis 1, wobei höhere Werte eine stärkere Präferenz ausdrücken. Fehlt ein Qualitätswert, behandelt der Server die Präferenz als 1.
Hinweis
In HTTP/2 und HTTP/3 ist trailers der einzige akzeptierte Wert des TE-Headers. Codierungen auf Transferebene werden von der Framing-Schicht des Protokolls übernommen.
trailers
Die Direktive trailers signalisiert, dass der Client Trailer-Felder in einer chunked-Transfer-Codierung akzeptiert. Dieser Wert nimmt nicht an der Gewichtung über Qualitätswerte teil.
gzip
Die Direktive gzip zeigt an, dass der Client auf Transferebene die Lempel-Ziv-Codierung (LZ77) mit einer 32-Bit-CRC unterstützt.
deflate
Die Direktive deflate zeigt an, dass der Client auf Transferebene zlib-komprimierte Daten unterstützt.
compress
Die Direktive compress zeigt an, dass der Client auf Transferebene die Lempel-Ziv-Welch-Komprimierung (LZW) unterstützt.
q (quality value)
Der Parameter q weist jeder Codierungspräferenz eine relative Gewichtung zu. Die Werte reichen von 0 (nicht akzeptabel) bis 1 (höchste Präferenz). Der Server nutzt die Qualitätswerte, um die beste Transfer-Codierung auszuwählen.
Beispiel
Ein Client kündigt Unterstützung für Trailer-Felder und die deflate-Transfer-Codierung an. Der Qualitätswert 0,5 gibt deflate eine niedrigere Priorität als der impliziten Vorgabe 1 der übrigen aufgeführten Codierungen.
TE: trailers, deflate;q=0.5
Ein Client bevorzugt die gzip-Transfer-Codierung und akzeptiert mit geringerer Priorität auch compress-Übertragungen.
TE: gzip, compress;q=0.7
Ein Client signalisiert ausschließlich Trailer-Unterstützung. Das ist die übliche Form bei HTTP/2-Verbindungen.
TE: trailers