TE
사용법
TE 헤더는 클라이언트가 전송 인코딩 선호도를 서버에 알릴 수 있게 합니다. 서버는 이 정보를 바탕으로 응답 본문의 Transfer-Encoding에 쓸 적절한 인코딩을 선택합니다.
HTTP/1.1에서 chunked 전송 인코딩은 항상 암묵적으로 지원되므로 TE 헤더에 나열할 필요가 없습니다. 이 헤더는 주로 두 가지 용도로 쓰입니다. 전송 수준에서 적용되는 추가 압축 알고리즘(gzip, deflate, compress) 지원을 알리는 것과, Trailer 필드 지원을 알리는 것입니다.
trailers 값은 특히 중요합니다. 클라이언트가 TE: trailers를 선언하지 않으면, 응답이 chunked 인코딩을 사용하더라도 서버는 클라이언트가 트레일러 필드를 처리한다는 보장을 얻지 못합니다. 트레일러 필드는 메시지 본문 뒤에 덧붙는 체크섬이나 디지털 서명 같은 메타데이터를 담습니다.
각 인코딩 디렉티브는 0에서 1 사이의 선택적 품질 값(q)을 받을 수 있으며, 값이 클수록 선호도가 높음을 나타냅니다. 품질 값이 없으면 서버는 선호도를 1로 간주합니다.
참고
HTTP/2와 HTTP/3에서 TE 헤더에 허용되는 유일한 값은 trailers입니다. 전송 수준 인코딩은 프로토콜의 프레이밍 계층이 처리합니다.
trailers
trailers 디렉티브는 클라이언트가 chunked 전송 인코딩에서 Trailer 필드를 받아들인다는 신호입니다. 이 값은 품질 값에 따른 순위 매김에 참여하지 않습니다.
gzip
gzip 디렉티브는 클라이언트가 전송 수준에서 32비트 CRC를 포함한 Lempel-Ziv 코딩(LZ77)을 지원함을 나타냅니다.
deflate
deflate 디렉티브는 클라이언트가 전송 수준에서 zlib으로 압축된 데이터를 지원함을 나타냅니다.
compress
compress 디렉티브는 클라이언트가 전송 수준에서 Lempel-Ziv-Welch(LZW) 압축을 지원함을 나타냅니다.
q (품질 값)
q 매개변수는 각 인코딩 선호도에 상대적인 가중치를 부여합니다. 값은 0(받아들일 수 없음)에서 1(가장 선호함)까지입니다. 서버는 품질 값을 사용해 최적의 전송 인코딩을 선택합니다.
예시
클라이언트가 트레일러 필드와 deflate 전송 인코딩 지원을 알립니다. 품질 값 0.5는 나열된 다른 인코딩의 암묵적 기본값 1에 비해 deflate의 우선순위를 낮춥니다.
TE: trailers, deflate;q=0.5
클라이언트가 gzip 전송 인코딩을 선호하며 compress 전송도 더 낮은 우선순위로 받아들입니다.
TE: gzip, compress;q=0.7
클라이언트가 트레일러 지원만 알립니다. 이는 HTTP/2 커넥션에서 사용되는 표준 형태입니다.
TE: trailers