之间是否存在任何有效差异
Content-Encoding: UTF-8
Content-Type: text/html; charset=utf-8
答案 0 :(得分:17)
可选参数charset
仅适用于基于文本的内容(Content-Types
,如text/plain
,text/html
等。并非所有消息都是文本。
Content-Encoding
表示整个身体已经以某种方式编码(通常是压缩的)。此标头的典型值为gzip
和deflate
。此消息的收件人应解码(例如,ungzip)正文以获取原始消息。
我甚至不确定UTF-8
是否有意义作为Content-Encoding
的值。
答案 1 :(得分:10)
根据 RFC 7231 - 超文本传输协议(HTTP / 1.1):语义和内容,Content-Encoding
header包含内容编码值的列表。引用the RFC:
内容编码值表示具有的编码转换 已经或可以应用于表示。内容编纂是 主要用于允许表示压缩或 否则有用的转变而不会失去其身份 底层媒体类型,不会丢失信息。经常, 表示以编码形式存储,直接传输,和 仅由最终收件人解码。
content-coding = token
所有内容编码值都不区分大小写,应该是 在“HTTP内容编码注册表”中注册,如中所定义 第8.4节。它们用于Accept-Encoding(第5.3.4节) 和Content-Encoding(第3.1.2.2节)标题字段。
第8.4节说:
“HTTP内容编码注册表”定义内容的名称空间 编码名称([RFC7230]第4.2节)。内容编码注册表 保持在http://www.iana.org/assignments/http-parameters。
注册表目前列出:
br Brotli Compressed Data Format [RFC7932]
compress UNIX "compress" data format [RFC7230] Section 4.2.1
deflate "deflate" compressed data ([RFC1951]) [RFC7230] Section 4.2.2
inside the "zlib" data format ([RFC1950])
exi W3C Efficient XML Interchange
gzip GZIP file format [RFC1952] [RFC7230] Section 4.2.3
identity Reserved (synonym for "no encoding" in [RFC7231] Section 5.3.4
Accept-Encoding)
pack200-gzip Network Transfer Format for Java Archives
x-compress Deprecated (alias for compress) [RFC7230] Section 4.2.1
x-gzip Deprecated (alias for gzip) [RFC7230] Section 4.2.3
UTF-8是一个character encoding scheme,它不能用于无损地转换任意二进制数据(至少不会以任何有意义的方式)。将Content-Encoding
设置为UTF-8
是完全错误的。用户代理可能只是忽略未知值或丢弃该消息并报告错误。设置字符编码方案的正确位置是Content-Type
header。