我正在学习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>
我评论了结束头标记以检查XHTML的严格性。当我用.xhtml扩展名保存此文件时,显示错误。但是当我使用.html扩展程序保存它时,浏览器非常宽容并且无论头部标记丢失都会呈现标记。
所以我的疑问是,是扩展名(.xhtml)是什么使文件实际上是xhtml并赋予它严格的语法行为?不应该是DOCTYPE决定它是否是一个xhtml?
从我在某处读到的内容,在HTTP中,文件扩展名并不重要,它的标题类型也很重要。
答案 0 :(得分:3)
当从Web服务器提供时,它是mime类型(也称为内容类型),用于确定浏览器是将文档视为XHTML还是HTML。浏览器从不使用DOCTYPE来确定页面是否为XHTML(但HTML5之前的验证程序确实如此)。
当浏览器从文件系统本地读取文件时,它确实使用文件扩展名来决定它是XHTML还是HTML。
有时,但并非总是如此,服务器设置为如果客户端请求带有&#34; .xhtml&#34;的网址。最后,文档将以XHTML(e,g,application/xhtml+xml
)mime类型提供。