Answers:
如果省略charset参数,则text / xml和application / xml之间的区别是默认字符编码:
如果未明确指定charset参数,则text / xml和application / xml的行为会有所不同。如果由于某些原因(例如,不良的Web服务器)而使text / xml的默认字符集(即US-ASCII)不方便,则application / xml提供了另一种选择(请参阅第3.2节中的application / xml注册的“可选参数”)。
对于text / xml:
符合[RFC2046]的规定,如果接收到省略了charset参数的text / xml实体,则MIME处理器和XML处理器务必使用默认字符集值“ us-ascii” [ASCII]。在通过HTTP传输XML MIME实体的情况下,默认字符集值仍为“ us-ascii”。
如果接收到省略了charset参数的应用程序/ xml实体,则MIME Content-Type标头不会提供有关该字符集的信息。合格的XML处理器必须遵循[XML]第4.3.3节中的要求,以直接解决这种情况。但是,如果从应用程序/ xml实体中省略了charset参数,则不是XML处理器的MIME处理器不应采用默认的字符集。
因此,如果省略charset参数,则text / xml的字符编码为US-ASCII,而对于application / xml,则可以在文档本身中指定字符编码。
现在,互联网上的一条经验法则是:“对输出严格,但对输入宽容。” 这意味着在通过Internet传输数据时,请确保尽可能满足标准。但要建立一些机制来忽略错误或猜测何时通过Internet接收和解释数据。
因此,在您的情况下,只需选择两种类型之一(我建议使用application / xml),并确保正确指定所使用的字符编码(我建议使用相应的默认字符编码以安全播放,因此在使用application / xml的情况下)UTF-8或UTF-16)。
根据经验,所有Web服务器,代理和客户端浏览器正确处理文档的最安全选择可能是:
根据某些浏览器无法正确实现的RFC 3023规范,内容类型的主要区别在于客户端应如何对待字符编码,如下所示:
对于application / xml,application / xml-dtd,application / xml-external-parsed-entity或application / xml的任何子类型,例如application / atom + xml,application / rss + xml或application / rdf + xml ,字符编码按以下顺序确定:
对于text / xml,text / xml-external-parsed-entity或诸如text / foo + xml的子类型,将忽略文档中XML声明的编码属性,并且字符编码为:
大多数解析器都没有实现规范。他们忽略HTTP上下文类型,而只使用文档中的编码。由于存在大量格式错误的文档,因此短期内不太可能更改。
text / xml适用于对文档有意义的文档,如果以文本形式显示而无需进一步处理,application / xml适用于其他所有内容
每个XML实体都适合与application / xml媒体类型一起使用,而无需修改。但这并没有利用XML在许多情况下可以被视为纯文本的事实。不明确支持application / xml的MIME用户代理(和Web用户代理)会将其视为application / octet-stream,例如,通过提供将其保存到文件中的方式。
要指示默认情况下应将XML实体视为纯文本,请使用text / xml媒体类型。这将XML实体中使用的编码限制为与[RFC-2045]和[RFC-2046]中所述的文本媒体类型要求兼容的编码,例如UTF-8,但不兼容UTF-16(除了HTTP)。
text/html
已经存在很长时间了,现在更改它有点晚了。
其他的答案在这里讨论的合适什么的一般问题Content-Type
的一个XML响应,并得出结论(如什么是文本/ XML应用VS / XML Web服务为响应之间的差异),这两个text/xml
和application/xml
是允许的。但是,没有人解决是否有特定于sitemap的规则。
答:没有。站点地图规范为https://www.sitemaps.org,使用Google site:
搜索可以确认它在任何地方均不包含单词mime,mimetype,content-type,application / xml或text / xml。换句话说,Content-Type
对于提供站点地图应使用的内容完全没有提及。
如果站点地图规范中没有任何评论可直接解决此问题,我们可以放心地假设,与选择Content-Type
任何其他XML文档时一样,适用相同的规则-即它可以是text/xml
或application/xml
。
text/html
,首选XHTML MIME类型是application/xhtml+xml
。