对于webservice响应,text / xml与application / xml之间有什么区别

这是关于text/xmlapplication/xml之间差异的一般性问题。 我很擅长编写webservices(REST - Jersey)。 我一直在生成application/xml因为它出现在我一直用来学习的大多数教程/代码示例中,但是我最近发现了text/xml并且想知道它有什么不同以及何时使用它over application/xml


#1楼

根据这篇文章, application / xml是首选。


编辑

我对这篇文章做了一些跟进。

作者声称在XML处理指令中声明的编码,如:


可以在使用text/xml媒体类型时忽略。

他们在RFC 2046中定义了text/* MIME类型系列规范,特别是以下片段:

4.1.2.  Charset Parameter

   A critical parameter that may be specified in the Content-Type field
   for "text/plain" data is the character set.  This is specified with a
   "charset" parameter, as in:

     Content-type: text/plain; charset=iso-8859-1

   Unlike some other parameter values, the values of the charset
   parameter are NOT case sensitive.  The default character set, which
   must be assumed in the absence of a charset parameter, is US-ASCII.

   The specification for any future subtypes of "text" must specify
   whether or not they will also utilize a "charset" parameter, and may
   possibly restrict its values as well.  For other subtypes of "text"
   than "text/plain", the semantics of the "charset" parameter should be
   defined to be identical to those specified here for "text/plain",
   i.e., the body consists entirely of characters in the given charset.
   In particular, definers of future "text" subtypes should pay close
   attention to the implications of multioctet character sets for their
   subtype definitions.

根据他们的说法,使用application/xml MIME类型时可以避免这种困难。 无论是否真实,我都不会避免使用text/xml 。 恕我直言,最好只是遵循人类可读性(不可读性)的语义,并始终记住指定字符集。


#2楼

这是一个古老的问题,但现在可以从RFC 7303获得经常访问的一个明确的建议,它废弃了RFC3023。 简而言之(第9.2节):

The registration information for text/xml is in all respects the same
as that given for application/xml above (Section 9.1), except that
the "Type name" is "text".

#3楼

application/xmlsvn视为二进制类型,而text/xml视为可以显示diff的文本文件。


#4楼

来自RFC( 3023 ),第3节,XML媒体类型:

如果临时用户可以读取 XML文档(即未处理的源XML文档),则text / xml优于application / xml。 没有明确支持text / xml的MIME用户代理(和Web用户代理)会将其视为text / plain,例如,将XML MIME实体显示为纯文本。 当临时用户无法读取 XML MIME实体时,最好使用Application / xml

(强调我的)


#5楼

不回答你的问题,而是提供简单的生活:

当你生活在.NET框架生态系统中时 - >看看https://referencesource.microsoft.com/#system.web/MimeMapping.cs line~430:

AddMapping(".xml", "text/xml");

所以你可以随时做

string mimeType = System.Web.MimeMapping.GetMimeMapping(string yourFileName)

正确地获取你的mimetype

你可能感兴趣的:(对于webservice响应,text / xml与application / xml之间有什么区别)