TETE는 클라이언트가 응답에서 받아들일 수 있는 전송 코딩(transfer coding)과 트레일러 수용 여부를 서버에 알리는 요청 헤더입니다. Accept-Encoding의 '전송(홉 단위)' 버전이라 할 수 있습니다.
값으로는 `gzip`·`deflate` 같은 전송 압축과, 특별 토큰 `trailers`(트레일러 헤더 수용)를 나열합니다(예: `TE: trailers, gzip`).
핵심은 종단 간 콘텐츠 코딩(Content-Encoding/Accept-Encoding)과 홉 단위 전송 코딩(Transfer-Encoding/TE)의 구분입니다. Content-Encoding은 리소스 표현 자체의 압축이라 종단 간 보존되지만, Transfer-Encoding은 인접한 두 노드 사이의 전송 방식이라 홉마다 달라질 수 있습니다. TE는 후자에 대한 클라이언트의 수용 능력을 표현합니다.
가장 실용적인 값은 `trailers`입니다. Transfer-Encoding: chunked로 본문을 스트리밍할 때, 본문을 다 보낸 뒤 계산 가능한 정보(예: 무결성 다이제스트, 서명, 처리 상태)를 마지막 트레일러 헤더로 덧붙일 수 있는데, 클라이언트가 `TE: trailers`로 이를 받아들이겠다고 밝혀야 서버가 Trailer 헤더와 함께 트레일러를 보냅니다.
TE는 홉 단위 헤더이므로 명세상 Connection 헤더의 목록에 포함되어 다음 홉으로 넘어가지 않고 각 연결에서 소비됩니다. HTTP/2·HTTP/3에서는 전송 계층이 프레이밍·압축을 자체 처리하므로 `chunked`·`gzip` 전송 코딩 개념이 사라지고, TE는 사실상 `trailers`만 의미를 갖습니다(그 외 값은 금지).
TE: <transfer-coding>[;q=<weight>][, ...]e.g. TE: trailers, gzip
trailers | 청크 전송의 마지막에 붙는 트레일러(후행) 헤더를 받아들일 수 있음을 표시. 값이 없는 특수 토큰. |
gzip | 홉 단위 전송 압축으로 gzip을 수용. Accept-Encoding(종단 간)과 별개. |
chunked | 청크 전송 코딩. HTTP/1.1에서는 항상 지원되므로 명시하지 않아도 됨. |
q=<0.0~1.0> | 각 전송 코딩의 선호 가중치. |