为什么HTML文本的MIME类型是XHTML应用程序的MIME类型?

时间:2012-02-05 16:48:52

标签: html xml xhtml mime-types mime

什么使得XHTML(和其他XML语言)应用程序与其他基于SGML的语言是文本?不是XML文件的文本文件吗?

2 个答案:

答案 0 :(得分:3)

XHTML是XML的子集; XML的媒体类型/ mime是 text / xml ,而XHTML的媒体类型/ mime是 application / xhtml + xml

通常,HTML基本上被视为非常松散地解释的纯文本。因为HTML的垃圾状态声誉XHTML是为了迫使Web设计人员和Web开发人员编写干净的HTML代码而创建的。 Gecko(Firefox)和Presto(Opera)浏览器正确地破坏页面并显示格式错误的XML解析错误,而WebKit(Chrome / Safari)和Trident(仅限Internet Explorer 9.0+)在失败时失败并且仅停止呈现页面。

作为text / html提供的XHTML应用程序不是XHTML,它是带有XHTML doctype的HTML。

要将XHTML代码作为XHTML应用程序提供,必须将其作为application / xhtml + xml提供。

XHTML也旨在向后兼容HTML。

以下PHP代码将查看客户端浏览器发送的标题,并在浏览器支持的情况下将该页面作为XHTML应用程序提供(所有Chrome,Safari 3.0+(可能是1.0)),Mozilla Suite 0.8 + /所有Firefox和Opera 7.0+(可能是6.0)支持XHTML。只有Internet Explorer 8.0及更早版本具有不支持XHTML的任何市场份额。 KHTML浏览器(Konqueror)DO支持XHTML,但我认为4.4确实/没有为服务器提供正确的标头。

<?php
$http_accept_xhtml = stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml');

if ($http_accept_xhtml) {$mime = 'application/xhtml+xml';}
else {$mime = 'text/html';}

header('Content-Type: '.$mime);
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
?>

如果您足够智能,可以在遇到错误时修复错误,那么XHTML优于HTML。它更严格,但这是重点,更不用说主观性了。 XHTML中的X代表可扩展性,所以如果你做一些阅读,它会在HTML之前支持SVG和其他语言。

答案 1 :(得分:0)

对于多种数据,有几种可接受的MIME类型。例如,XML可以是text / xml或application / xml(http://tools.ietf.org/html/rfc3023)。

HTTP充满了多种正确的做事方式;它是被很多人设计和使用的副产品。它也在不断发展。一般来说,即使设计某种东西只有一种方法,也可以采用多种方式进行设计,在有足够的人接受它们后,这些方法成为事实上的标准。

如果你没有发现任何问题,说你的XHTML和SGML都是“应用程序”,一切仍然有效,它会让你更快乐,那就去吧。