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

为什么HTML文本是MIME类型,而XHTML应用程序是MIME类型?,html,xml,xhtml,mime-types,mime,Html,Xml,Xhtml,Mime Types,Mime,当其他基于SGML的语言是文本时,是什么使XHTML(和其他XML语言)应用程序成为文本?XML文件不是文本文件吗?对于许多类型的数据,有几种可接受的MIME类型。例如,XML可以是text/XML或application/XML(http://tools.ietf.org/html/rfc3023) HTTP充满了多种正确的方法来做事情;这是被这么多人设计和使用的副产品。它也在不断发展。一般来说,即使设计某种东西只有一种方法,也可以有很多种方法来使用它,而这些方法在足够多的人熟悉之后就成为了事

当其他基于SGML的语言是文本时,是什么使XHTML(和其他XML语言)应用程序成为文本?XML文件不是文本文件吗?

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

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


如果你认为你的XHTML和SGML都是“应用程序”,而且一切都能正常工作,让你更开心,那就去做吧。

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代码将查看客户端浏览器发送的标题,如果浏览器支持(全Chrome、Safari 3.0+(可能是1.0))、Mozilla Suite 0.8+/全Firefox和Opera 7.0+(可能是6.0)支持XHTML,则将该页面作为XHTML应用程序使用。只有Internet Explorer 8.0及更高版本才有不支持XHTML的市场份额。KHTML浏览器(Konqueror)确实支持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代表可扩展,因此,如果您稍微阅读一下,它支持SVG和其他语言,而不是HTML。

HTML中的HTML不再基于SGML。