2

我正在学习 XHTML。如果我的理解是正确的,XHTML 遵循严格的语法。所以我创建了这个标记:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
    <head>    
        <title>XHTML page</title>
<!--    </head> -->
    <body>
        This is the body
    </body>
</html>

我已经注释了结束的 head 标记来检查 XHTML 的严格性。当我用 .xhtml 扩展名保存这个文件时,它显示了一个错误。但是当我使用 .html 扩展名保存它时,浏览器非常宽容并呈现标记,而不管缺少的 head 标签。

所以我的疑问是,是扩展名(.xhtml)使文件实际上是xhtml并赋予它严格的语法行为吗?不应该是确定它是否是 xhtml 的 DOCTYPE 吗?

从我在某处读到的内容来看,在 HTTP 中,文件扩展名并不重要,它的标头类型很重要。

4

1 回答 1

3

从 Web 服务器提供服务时,mime 类型(也称为内容类型)决定了浏览器将文档视为 XHTML 还是 HTML。浏览器从不使用 DOCTYPE 来确定页面是否为 XHTML(但 HTML5 之前的验证器会这样做)。

当浏览器从文件系统本地读取文件时,它确实使用文件扩展名来决定它是 XHTML 还是 HTML。

有时,但并非总是如此,服务器被设置为如果客户端请求一个以“.xhtml”结尾的 url,则该文档将使用 XHTML(例如,application/xhtml+xml)mime 类型提供。

于 2012-11-01T15:36:01.867 回答