Content-Encoding
Content-Encoding
Content-Encoding
实体头用于压缩媒体类型。如果存在,它的值表示哪些编码应用于实体主体。它让客户知道,如何解码以获取Content-Type
标题引用的媒体类型。
建议尽可能压缩数据并因此使用此字段,但某些类型的资源(如 jpeg 图像)已被压缩。有时使用额外的压缩不会减少有效载荷的大小,甚至可能使有效载荷更长。
Header type | Entity header |
---|---|
Forbidden header name | no |
语法
Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: identity
Content-Encoding: br
// Multiple, in the order in which they were applied
Content-Encoding: gzip, identity
Content-Encoding: deflate, gzip
指令
gzip
一种使用 Lempel-Ziv 编码( LZ77 )和32位 CRC 的格式。这最初是 UNIX gzip
程序的格式。
与大多数 UNIX 发行版已经消失的压缩程序一样,目前几乎没有浏览器使用这种内容编码,部分原因是由于专利问题(已在2003年过期)。
例子
用 gzip 压缩
在客户端,您可以公布一个将在 HTTP 请求中发送的压缩方案列表。Accept-Encoding
header 被用于协商内容编码。
Accept-Encoding: gzip, deflate
服务器响应所使用的方案,由Content-Encoding
响应 header 。
Content-Encoding: gzip
请注意,服务器没有义务使用任何压缩方法。压缩高度依赖于服务器设置和使用的服务器模块。
规范
Specification | Title |
---|---|
RFC 7231, section 3.1.2.2: Content-Encoding | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
RFC 7932: Brotli Compressed Data Format | Brotli Compressed Data Format |
浏览器兼容性
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
br | 50 | No | 44.0 | No | 36.0 | No |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
br | 51 | 51 | No | 44.0 | No | No | No |