Content-Encoding header

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

Tiêu đề HTTP Content-Encoding biểu diễn liệt kê các mã hóa và thứ tự mà chúng được áp dụng cho tài nguyên. Điều này cho phép người nhận biết cách giải mã dữ liệu để lấy được định dạng nội dung gốc được mô tả trong tiêu đề Content-Type. Mã hóa nội dung chủ yếu được sử dụng để nén nội dung mà không làm mất thông tin về kiểu phương tiện gốc.

Các máy chủ nên nén dữ liệu nhiều nhất có thể, và nên sử dụng mã hóa nội dung khi thích hợp. Nén các kiểu phương tiện đã được nén, như .zip hoặc .jpeg, thường không phù hợp vì nó có thể tăng kích thước tệp. Nếu phương tiện gốc đã được mã hóa (ví dụ: dưới dạng tệp .zip), thông tin này không được bao gồm trong tiêu đề Content-Encoding.

Khi tiêu đề Content-Encoding có mặt, các siêu dữ liệu khác (ví dụ: Content-Length) đề cập đến dạng mã hóa của dữ liệu, không phải tài nguyên gốc, trừ khi được nêu rõ ràng. Mã hóa nội dung khác với Transfer-Encoding ở chỗ Transfer-Encoding xử lý cách các thông điệp HTTP được truyền qua mạng trên cơ sở từng chặng.

Loại tiêu đề Tiêu đề biểu diễn
Tiêu đề yêu cầu bị cấm Không

Cú pháp

http
Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: br
Content-Encoding: zstd
Content-Encoding: dcb
Content-Encoding: dcz

// Nhiều, theo thứ tự mà chúng được áp dụng
Content-Encoding: deflate, gzip

Chỉ thị

gzip

Định dạng sử dụng mã hóa Lempel-Ziv (LZ77), với CRC 32-bit. Đây là định dạng gốc của chương trình UNIX gzip. Tiêu chuẩn HTTP/1.1 cũng khuyến nghị rằng các máy chủ hỗ trợ mã hóa nội dung này nên nhận ra x-gzip như một bí danh, cho mục đích tương thích.

compress

Định dạng sử dụng thuật toán Lempel-Ziv-Welch (LZW). Tên giá trị được lấy từ chương trình UNIX compress, đã triển khai thuật toán này. Giống như chương trình compress đã biến mất khỏi hầu hết các bản phân phối UNIX, mã hóa nội dung này không được nhiều trình duyệt sử dụng ngày nay, một phần vì vấn đề bằng sáng chế (hết hạn vào năm 2003).

deflate

Sử dụng cấu trúc zlib (được định nghĩa trong RFC 1950) với thuật toán nén deflate (được định nghĩa trong RFC 1951).

br

Định dạng sử dụng cấu trúc thuật toán Brotli (được định nghĩa trong RFC 7932).

zstd

Định dạng sử dụng cấu trúc thuật toán Zstandard (được định nghĩa trong RFC 8878).

dcb Experimental

Định dạng sử dụng thuật toán Dictionary-Compressed Brotli. Xem Compression Dictionary Transport.

dcz Experimental

Định dạng sử dụng thuật toán Dictionary-Compressed Zstandard. Xem Compression Dictionary Transport.

Ví dụ

Nén với gzip

Ở phía máy khách, bạn có thể quảng cáo danh sách các scheme nén sẽ được gửi cùng với yêu cầu HTTP. Tiêu đề Accept-Encoding được sử dụng cho thương lượng mã hóa nội dung.

http
Accept-Encoding: gzip, deflate

Máy chủ phản hồi với scheme được sử dụng, được chỉ ra bởi tiêu đề phản hồi Content-Encoding.

http
Content-Encoding: gzip

Thông số kỹ thuật

Specification
HTTP Semantics
# field.content-encoding

Khả năng tương thích trình duyệt

Xem thêm