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实体。
所以不,这不是强制性的,但是如果省略,这取决于特定的媒体类型如何检测。