我以为我应该发送“text/xml”,但后来我读到我应该发送“application/xml”。有关系吗?有人可以解释其中的区别吗?
The 之间的区别text/xml and 应用程序/xml是默认的字符编码,如果charset省略参数:
当字符集设置为 Text/xml 和 application/xml 时,Text/xml 和 application/xml 的行为不同
参数没有明确指定。如果默认字符集(即
由于某些原因(例如,糟糕的网络),文本/xml 的 US-ASCII)不方便
服务器),application/xml 提供了一种替代方案(请参阅“可选
第 3.2 节中的 application/xml 注册的参数”)。
For text/xml:
符合 [RFC2046],如果收到文本/xml 实体
省略 charset 参数、MIME 处理器和 XML 处理器
必须使用默认字符集值“us-ascii”[ASCII]。在案件
其中 XML MIME 实体通过 HTTP 传输,默认
字符集值仍然是“us-ascii”。
For 应用程序/xml:
如果收到应用程序/xml 实体,其中字符集
参数被省略,没有提供有关的信息
MIME Content-Type 标头的字符集。符合 XML 标准
处理者必须遵循 [XML] 第 4.3.3 节中的要求
直接解决这种意外情况。然而,MIME 处理器
如果不是 XML 处理器,则不应采用默认字符集
application/xml 实体中省略了 charset 参数。
所以如果charset省略参数,则字符编码text/xml是 US-ASCII,而应用程序/xml字符编码可以在文档本身中指定。
现在网上的一个经验法则是:“严于输出,宽容输入”。这意味着在通过互联网传输数据时确保尽可能满足标准。但要建立一些机制来忽略错误或在通过互联网接收和解释数据时进行猜测。
所以在你的情况下,只需选择两种类型之一(我推荐应用程序/xml)并确保正确指定所使用的字符编码(我建议使用相应的默认字符编码以确保安全,因此在出现以下情况时应用程序/xml使用 UTF-8 或 UTF-16)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)