是HTTP内容类型标头中强制性的Charset组件



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

content-type实体字段指示介质类型 实体体 - 发送给收件人或头部方法的实体体, 如果请求是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的默认字符已用于文本媒体类型删除;默认值现在是媒体类型定义所说的。同样,ISO-8859-1的特殊处理也已从Appact-Charset标头字段。(第3.1.1.3节和第5.3.3节(

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

多达三个有关角色的信息来源XML MIME实体可能存在编码:一个charset参数,BOM(请参阅下面的第3.3节(和XML编码声明(请参阅[XML]的第4.3.3节(。确保这些来源之间的一致性需要实体作者与哑剧代理之间的协调(IS,包装,转移,交付和/或接收MIME的过程实体(。

建议所有XML MIME的UTF-8使用,无BOM实体。

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

最新更新