首页 文章

每个带有doctype的html页面都需要互联网连接才能正确呈现页面吗?

提问于
浏览
9

许多doctype使用url链接

像这样

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

这个dtd文件在实时网址http://www.w3.org/TR/html4/strict.dtd

这个在线直播dtd的用途是什么,以及如何根据此doctype正确呈现任何页面(使用此doctype)而无法访问此URL(我的意思是如果无法访问互联网?)

update : 我从维基百科发现了这个信息http://en.wikipedia.org/wiki/System_identifier

在HTML和XML中,系统标识符是无碎片URI引用 . 它通常出现在文档类型声明中 . 在此上下文中,旨在标识专门用于一个应用程序的文档类型,而公共标识符旨在标识可跨越多于一个应用程序的文档类型 . 在以下示例中,系统标识符是引号中包含的文本:

update 2 : 它只用于验证器吗? Dreamweaver等软件如何提供离线验证?

update 3: 我从w3c网站http://www.w3.org/QA/Tips/Doctype找到了这个信息

为什么要指定doctype?因为它定义了你的文档实际使用的(X)HTML版本(适用于什么浏览器或验证器的版本?),这是一些工具所需的关键信息(哪些工具?任何其他工具,然后验证器?)处理文献 . 例如,指定文档的doctype允许您使用诸如标记验证器之类的工具来检查(X)HTML的语法 . 如果他们不知道您使用的是哪种文档,这些工具将无法工作 . 但最重要的是,对于大多数浏览器系列而言,doctype声明会使大量猜测变得不必要,从而触发“标准”渲染模式 .

3 回答

  • 2

    不,没有浏览器实际获取或验证doctype . 请参阅DTDs Don't Work on the Web,了解为什么提取和验证DTD是个坏主意 .

    理论上,doctype用于说明文档使用的标准版本 . 除了switch between quirks and standards mode之外,浏览器通常不使用此信息 . 为此,所有现代浏览器都接受最简单的doctype,没有URL或版本信息, <!DOCTYPE html> ;因此,HTML5已将此作为推荐的doctype .

    验证器有时会使用此信息来告知要验证的DTD,但是文档中嵌入的DTD是否真的非常关心文档是否是自洽的,而是它是否遵循消费者知道如何可靠地解释的模式 . 相反,通常更好的是使用更强大的模式语言(如RELAX NG)来验证外部模式 .

    当验证器使用此信息时,它们经常仅将URI用作标识符,而不是定位器 . 这意味着验证器已经知道所有常见的HTML文档类型,并使用该知识进行验证,而不是从所引用的URI下载 . 这部分是为了避免每次都必须下载DTD的问题,并且因为DTD实际上没有指定足够的信息来提供非常好的验证和错误消息,因此可以在自定义代码中指定验证器的某些部分 . 或者更强大的模式语言 . 有关更多信息,请参阅Henri Sivonen's thesis,了解他对validator.nu HTML5一致性检查器的实现 .

    一些验证器也可能下载然后缓存DTD,因此他们需要在线一次才能下载它,但稍后将从缓存版本开始工作 .

  • 0

    URI用于唯一标识文档类型 - 它不用于检索,并且浏览器(或其他软件)不应依赖于该Web地址上存在的文档 .

  • 14

    我曾经对此感到好奇 . 但是如果你有自己的HTTP服务器,很容易证明它并不重要 . 只需将电缆拉到外面的世界,看看你是否仍然可以打开服务器上的页面 .

相关问题