这是更多的区别一般问题text/xml
和application/xml
.我很擅长编写webservices(REST - Jersey).我一直在制作,application/xml
因为它出现在我一直用来学习的大多数教程/代码示例中,但我最近发现text/xml
并且想知道它有什么不同以及何时使用它application/xml
?
Ode*_*ded 415
来自RFC(3023),第3节,XML媒体类型:
如果临时用户可以读取 XML文档(即未处理的源XML文档),则text/xml优于application/xml.没有明确支持text/xml的MIME用户代理(和Web用户代理)会将其视为text/plain,例如,将XML MIME实体显示为纯文本. 当 临时用户无法读取 XML MIME实体时,最好使用Application/xml.
(强调我的)
小智 92
这是一个古老的问题,但现在可以从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".
Run Code Online (Sandbox Code Playgroud)
har*_*ang 31
根据这篇文章, application/xml是首选.
编辑
我对这篇文章做了一些跟进.
作者声称在XML处理指令中声明的编码,如:
<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)
text/xml
使用媒体类型时可以忽略.
他们text/*
在RFC 2046中定义了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.
Run Code Online (Sandbox Code Playgroud)
根据他们的说法,使用application/xml
MIME类型时可以避免这种困难.无论是否真实,我都不会避免text/xml
.恕我直言,最好只是遵循人类可读性(不可读性)的语义,并始终记住指定字符集.