当我查看XHTML文档类型时,有一个.dtd文件。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
它的目的是什么?
浏览器是否实际访问它并使用它来解析HTML?
如果是这样,当w3.org出现故障时会发生什么?
答案 0 :(得分:2)
文档类型定义基本上是告诉浏览器正在使用的HTML版本。它可以追溯到SGML(标准通用标记语言)。 SGML基本上用于向浏览器解释如何理解文档的结构(例如HTML页面)。有趣的是,XML是SGML的一个受限子集,关闭了许多(异国情调)功能。
浏览器确实使用它来解析文档,但是每次获取文档时,它们都不需要使用请求来核对W3C服务器。相反,他们使用缓存的本地副本。
当W3C.org发生故障时,他们会继续使用缓存副本。除非您指定其他URL ...
有关DOCTYPE声明的另一个注意事项是它已经在HTML5中消失了,因为HTML5不再基于SGML。 HTML5使用<!DOCTYPE html>
。
答案 1 :(得分:1)
浏览器实际上并没有从w3.org读取该文件。
相反,他们有一个已知的DTD URI列表,他们知道如何处理每个URI。 (可能使用浏览器中嵌入的DTD文件的副本)