浏览器用于处理/理解HTML的内部机制是什么?

时间:2010-11-02 08:41:28

标签: html parsing browser

浏览器如何理解HTML?

内部发生的实际处理是什么,以便浏览器以正确的可视方式呈现HTML?

3 个答案:

答案 0 :(得分:11)

这取决于特定的浏览器,但一般程序如下:

  1. 阅读HTML并将其解析为DOM树。
  2. 加载链接的资源(样式表,脚本,图像,媒体)
  3. 计算页面布局(位置,大小,颜色,字体等)
  4. 渲染页面
  5. 在现代浏览器中,这些操作部分并行运行,使事情比它们看起来要复杂得多。

    如果您想了解更多详情,可以查看源代码 - 至少Firefox(以及其他基于Gecko的浏览器)和WebKit(Google Chrome和Safari的基础)都是开源的。

答案 1 :(得分:2)

这是一个比第一次被问到时更大的问题。

幕后发生了很多事情。解析HTML,定位脚本,加载资源,其中一些需要解析。样式表增添了乐趣。脚本可以通过在加载文档时重写文档来创建更多工作。在此过程中,必须解决明显的安全问题。每走一步,你都必须假设每一页都是潜在的企图颠覆整个计算机并抵御你能想到的每一次攻击,以及你今天想不到的每一次攻击。

这远不是一个全面的清单。

完整源代码可用的一个很好的例子是Gecko,Mozilla Firefox背后的渲染引擎。它维护良好,速度快,符合标准,并且与1000名代码审查者和攻击者一样安全。

答案 2 :(得分:1)

这真的不是我的领域,但是使用任何语言,计算机都必须解析它,并构建它的内部表示。

在5之前的HTML版本中,每个浏览器都决定了如何解析HTML本身。从HTML5开始,HTML规范实际上定义了如何解析HTML。

并非所有浏览器都实现了这一点(可能没有),但WebKit团队至少正在研究它,如果你正在了解它,看看他们的工作或HTML5规范可能是一个好的开始解析HTML。

相关问题