繁体   English   中英

字符集组件在HTTP内容类型标头中是否是必需的?

[英]Is the charset component mandatory in the HTTP content-type header?

HTTP请求可能具有Content-Type标头:

GET / HTTP/1.1
...
Content-Type: text/xml; charset=utf-8
...

在某些情况下必须强制使用charset组件吗? 万一什么时候?

可能的Content-Type标头示例,不一定正确:

Content-Type: text/xml
Content-Type: charset=utf-8
Content-Type: text/xml; charset=utf8
Content-Type:

标准信息:

编辑说明:看来此引用已过时,RFC 7231现在是正确的版本,如@RobbyCornelissen所建议。

标准对此几乎没有说什么(或者我看错了地方): https : //www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

14.17内容类型

Content-Type实体标头字段指示发送给接收方的实体主体的媒体类型,或者在HEAD方法的情况下,指示如果请求是GET则应发送的媒体类型。

  Content-Type = "Content-Type" ":" media-type 

媒体类型在第3.7节中定义。 该领域的一个例子是

  Content-Type: text/html; charset=ISO-8859-4 

在7.2.1节中将进一步讨论识别实体媒体类型的方法。

请参阅RCF 7231,附录B。对RFC 2616的更改

文本媒体类型的默认ISO-8859-1字符集已删除; 现在默认值是媒体类型定义所说的 同样,已从Accept-Charset标头字段中删除了对ISO-8859-1的特殊处理。 (第3.1.1.3节和第5.3.3节)

因此,这取决于给定媒体类型的默认字符集/编码。 您可以使用IANA查找媒体类型注册表 ,例如application / xml媒体类型 ,它链接到RFC 7303第3节

一个XML MIME实体可能存在多达三个与字符编码有关的信息源:一个字符集参数,一个BOM(请参阅下面的3.3节)和一个XML编码声明(请参阅[XML]的4.3.3节)。 要确保这些源之间的一致性,需要在实体作者与MIME代理(即打包,传输,传递和/或接收MIME实体的过程)之间进行协调。

建议对所有XML MIME实体使用不带BOM的UTF-8。

因此,不是强制性的,但如果省略,则取决于如何检测特定媒体类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM