Accept-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 Accept-Encoding yêu cầu và phản hồi chỉ ra mã hóa nội dung (thường là thuật toán nén) mà người gửi có thể hiểu.
Trong các yêu cầu, máy chủ sử dụng thương lượng nội dung để chọn một trong các đề xuất mã hóa từ máy khách và thông báo cho máy khách về lựa chọn đó với tiêu đề phản hồi Content-Encoding.
Trong các phản hồi, nó cung cấp thông tin về những mã hóa nội dung nào mà máy chủ có thể hiểu trong các thông điệp đến tài nguyên được yêu cầu, để mã hóa đó có thể được sử dụng trong các yêu cầu tiếp theo đến tài nguyên.
Ví dụ, Accept-Encoding được bao gồm trong phản hồi 415 Unsupported Media Type nếu yêu cầu đến tài nguyên (ví dụ: PUT) sử dụng mã hóa không được hỗ trợ.
Ngay cả khi cả máy khách và máy chủ đều hỗ trợ cùng các thuật toán nén, máy chủ có thể chọn không nén thân của phản hồi nếu giá trị identity cũng có thể chấp nhận được.
Điều này xảy ra trong hai trường hợp phổ biến:
- Dữ liệu đã được nén, nghĩa là việc nén lần thứ hai sẽ không giảm kích thước dữ liệu được truyền, và thực sự có thể tăng kích thước nội dung trong một số trường hợp. Điều này đúng với các định dạng hình ảnh được nén trước (JPEG, chẳng hạn).
- Máy chủ bị quá tải và không thể phân bổ tài nguyên tính toán để thực hiện nén. Ví dụ, Microsoft khuyến nghị không nén nếu máy chủ sử dụng hơn 80% sức mạnh tính toán của nó.
Miễn là các chỉ thị identity;q=0 hoặc *;q=0 không cấm rõ ràng giá trị identity có nghĩa là không mã hóa, máy chủ không bao giờ được trả về lỗi 406 Not Acceptable.
Note:
IANA duy trì danh sách các mã hóa nội dung chính thức.
Các mã hóa bzip và bzip2 không phải tiêu chuẩn, nhưng có thể được sử dụng trong một số trường hợp, đặc biệt để hỗ trợ kế thừa.
| Loại tiêu đề | Tiêu đề yêu cầu, Tiêu đề phản hồi |
|---|---|
| Tiêu đề yêu cầu bị cấm | Có |
Cú pháp
Accept-Encoding: gzip
Accept-Encoding: compress
Accept-Encoding: deflate
Accept-Encoding: br
Accept-Encoding: zstd
Accept-Encoding: dcb
Accept-Encoding: dcz
Accept-Encoding: identity
Accept-Encoding: *
// Nhiều thuật toán, có trọng số với cú pháp giá trị chất lượng:
Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
Chỉ thị
gzip-
Định dạng nén sử dụng mã hóa Lempel-Ziv (LZ77) với CRC 32-bit.
compress-
Định dạng nén sử dụng thuật toán Lempel-Ziv-Welch (LZW).
deflate-
Định dạng nén sử dụng cấu trúc zlib với thuật toán nén deflate.
br-
Định dạng nén sử dụng thuật toán Brotli.
zstd-
Định dạng nén sử dụng thuật toán Zstandard.
dcbThử nghiệm-
Định dạng sử dụng thuật toán Dictionary-Compressed Brotli. Xem Compression Dictionary Transport.
dczThử nghiệm-
Định dạng sử dụng thuật toán Dictionary-Compressed Zstandard. Xem Compression Dictionary Transport.
identity-
Chỉ ra hàm đồng nhất (tức là không có sửa đổi hay nén). Giá trị này luôn được coi là có thể chấp nhận được, ngay cả khi bị bỏ qua.
*(ký tự đại diện)-
Khớp với bất kỳ mã hóa nội dung nào chưa được liệt kê trong tiêu đề. Đây là giá trị mặc định nếu tiêu đề không có. Chỉ thị này không gợi ý rằng bất kỳ thuật toán nào được hỗ trợ nhưng chỉ ra rằng không có ưu tiên nào được thể hiện.
;q=(qvalues weighting)-
Bất kỳ giá trị nào được đặt theo thứ tự ưu tiên được biểu thị bằng giá trị chất lượng tương đối gọi là trọng số.
Ví dụ
>Các giá trị Accept-Encoding mặc định
Điều hướng trình duyệt thông thường có giá trị tiêu đề yêu cầu Accept-Encoding sau:
GET /en-US/ HTTP/2
Host: developer.mozilla.org
Accept-Encoding: gzip, deflate, br, zstd
Các giá trị Accept-Encoding có trọng số
Tiêu đề sau hiển thị các tùy chọn Accept-Encoding sử dụng giá trị chất lượng giữa 0 (ưu tiên thấp nhất) và 1 (ưu tiên cao nhất).
Nén Brotli được đặt trọng số 1.0, làm cho br là lựa chọn đầu tiên của máy khách, tiếp theo là gzip với ưu tiên 0.8, rồi bất kỳ mã hóa nội dung nào khác ở mức 0.1:
Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| HTTP Semantics> # field.accept-encoding> |
Khả năng tương thích trình duyệt
Xem thêm
415 Unsupported Media Type- HTTP thương lượng nội dung
- Tiêu đề với kết quả thương lượng nội dung:
Content-Encoding - Các tiêu đề tương tự khác:
TE,Accept,Accept-Language - Brotli compression
- GZip compression
- Zstandard compression
- Hướng dẫn Compression Dictionary Transport