作为text/xml和application/xhtml+xml提供页面的区别是什么?



作为text/xmlapplication/xhtml+xml提供页面有什么区别?

引自规范:

'application/xhtml+xml'媒体类型[RFC3236]是主要媒体类型用于XHTML族文档。'application/xhtml+xml'应该是用于向XHTML用户代理提供XHTML文档明确表示他们支持这种媒体类型)。此媒体类型在使用XHTML家族文档类型编写文档时必须使用添加来自外部名称空间的元素和属性,例如XHTML + MathML [XHTML + MathML]。

因此,如果客户端支持,使用application/xhtml+xml来提供XHTML页面,否则可以使用text/html

另一个引用自规范:

  1. 如果Accept报头明确包含application/xhtml+xml (with要么没有"q"参数,要么有一个正的"q"值)传递文档使用该媒体类型。

  2. 如果Accept报头明确包含Text/html(没有"q"参数或有一个正的"q"值)使用该媒体类型交付文档。

  3. 如果是accept报头包含"*/*"(某些用户代理使用该约定来表示)他们会接受任何东西),使用text/html传递文档。

换句话说,声明支持XHTML家族的请求程序文档将接收XHTML媒体类型的文档,等等其他请求者(至少声称)支持HTML或"一切"将使用HTML媒体类型接收文档。与用户打交道不满足这些条件的代理不在此文档。

当一个XHTML文档不遵循指导原则时,它应该遵循只能作为媒体类型application/xhtml+xml。

text/xml不应该用于提供XHTML网页。您可以使用它来提供不表示XHTML的其他XML文档。

从技术上讲,唯一的区别是文本/xml文档的编码应该默认为US-ASCII(如果在HTTP头或源代码中没有指定编码),但在application/xml和*/*+xml中,UTF-8是默认编码。我想没有浏览器支持这个。

应用程序/xhtml+xml MIME类型应该主要用于xhtml(对于SVG,应该使用image/SVG +xml)。然而,在实践中,这些MIME类型之间没有区别,因为浏览器对所有与XML相关的MIME类型使用相同的XML解析器。

请记住application/xhtml+xml并没有说明文档的内容。仍然需要为属于XHTML名称空间的元素指定xmlns="http://www.w3.org/1999/xhtml"属性。

最新更新