网络基础知识科普:浏览器的内核

作者: admin 分类: 网站建设 发布时间: 2010-05-08 19:37 ė 6 没有评论

  讲网站课时,我们常常需要讲浏览器的类型,以及网页对浏览器中的兼容性。常常有学生抢答:老师,我知道,浏览器除 IE 外,还有世界之窗、GreenBrowser、傲游……。也常听人说,IE 太差了,我不用 IE,我用『世界之窗』(或其他什么的浏览器)。其实我听了这些,心里感觉很不是滋味的。看来很多童鞋虽然上网算是『老手』,但网络基础知识却非常贫乏,在基础知识方面,充其量还只能逄是一个小白。

  呵呵,不谈感受了吧,直接给不懂的朋友们扫盲一下吧。

  浏览器的区别关键在内核,浏览器内核(Rendering Engine)目前主要有 Trident、Gecko、Presto、KHTML、WebCore、WebKit 等几种。

  浏览器最重要或者说核心的部分是『Rendering Engine』,可大概译为『解释引擎』,不过我们一般习惯将之称为『浏览器内核』。负责对网页语法的解释(如HTML、JavaScript)并渲染(显示)网页。

  不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

  几种常见的浏览器内核简介:

  Trident:

  Windows 下的 IE 浏览器使用的内核代号。除IE外,众多的 IE Shell(如 Maxthon)都使用这个内核。这种内核常被人叫 IE 内核,这中间有懂的人(为了简称),也有很多是不懂的人(因为实际上不知道这种内核叫什么名字),呵呵。

  这种内核在 1997 年的 IE4 中首次被采用,是微软在 Mosaic 代码的基础之上修改而来的,并沿用到目前的 IE8。 Trident 实际上是一款开放的内核,其接口内核设计的相当成熟,懂程序设计的人几分钟就能做出一个基于这种内核的简单浏览器了。也正因为这样,国内很多叫浏览器的东西,如 Maxthon、The World(世界之窗)、TT、GreenBrowser、AvantBrowser、搜狗,都是用这种办法写的,也就是说,他们都是『IE 内核』,不过是投国人所好,增加了一些实用的功能。至于什么 360,那就更不用说了,就是 The World 改个名字而已,当然是『IE 内核』。

  由于 IE 本身的『垄断性』,而使得 Trident 内核的长期一家独大,微软很长时间都并没有更新 Trident 内核,这导致了两个后果 —— 一是 Trident 内核曾经几乎与 W3C 标准脱节(2005 年),二是 Trident 内核的大量 Bug 等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox 和 Opera 就是这个时候兴起的。非 Trident 内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非 IE 浏览器的浏览效果问题。

  Gecko:

  Gecko 中文常翻译为『壁虎』,是由 Mozilla 基金会开发的布局引擎的名字。它原本叫作 NGLayout。Gecko 的作用是读取诸如 HTML、CSS、XUL 和 JavaScript 等的网页内容,并呈现到用户屏幕或打印出来。

  Gecko 是目前 Mozilla Firefox 浏览器使用的内核。但使用 Gecko 内核的浏览器也有不少,如 Netscape、MozillaSuite/SeaMonkey 等。另外,Mozilla Thunderbird 也使用 Gecko。

  应该说,Gecko 最开始是 Netscape 6 采用的内核,后来的 Mozilla FireFox 也采用了该内核。

  Gecko 的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,这也是 Gecko 内核的浏览器也很多的重要原因,同时也是 Geckos 内核虽然年轻,但市场占有率能够迅速提高的重要原因。

  事实上,Gecko 引擎的兴起跟 IE 不无关系,前面说过,IE 没有使用 W3C 的标准,这导致了微软内部一些开发人员的不满;他们与当时已经停止更新了的 Netscape 的一些员工一起创办了 Mozilla,以当时的 Mosaic 内核为基础重新编写内核,开发出了 Geckos。虽然 Gecko 内核的浏览器不少,但 Gecko 内核的浏览器仍然还是 Firefox 用户最多,所以有时也会被人称为 Firefox 内核。
  此外 Gecko 也是一个跨平台内核,可以在 Windows、BSD、Linux 和 Mac OS X 中使用。

  Presto:

  是目前的 Opera 浏览器使用的内核代号,这是目前公认网页浏览速度最快的浏览器内核。

  该内核在 2003 年的 Opera 7 中首次被使用,该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

  实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto 有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行 Javascrīpt 的时候有着最快的速度,根据在同等条件下的测试,Presto 内核执行同等 Javascrīpt 所需的时间仅有 Trident 和 Gecko 内核的约 1/3(Trident 内核最慢,不过两者相差没有多大)。那次测试的时候因为 Apple 机的硬件条件和普通 PC 机不同所以没有测试 WebCore 内核。只可惜 Presto 是商业引擎,使用 Presto 的除开 Opera 以外,只剩下 NDSBrowser、Wii Internet Channle、Nokia 770 网络浏览器等,这很大程度上限制了 Presto 的发展。
  Presto 是一个由 Opera Software 开发的浏览器引擎,只在 Opera 7.0 及以上版本使用。旧版 Opera 使用的是 Elektra 引擎。

  KHTML/WebCore:

  Konqueror/Safari 浏览器使用的内核代号。Konqueror 是 X 协议下的 KDE 桌面环境使用的浏览器和资源管理器,可以用在 Unix/Linux/BSD 系统中,KDE 4.0 以后向 Windows 移植;Safari 则是 Apple 用户中最受欢迎的浏览器。

  KHTML 是 HTML 网页排版引擎之一,由 KDE 所开发。KDE 系统自 KDE2 版起,在档案及网页浏览器使用了 KHTML 引擎。该引擎以 C++ 编程语言所写,并以 LGPL 授权,支援大多数网页浏览标准。由于微软的IE的占有率相当高,不少以 FrontPage 制作的网页均包含只有 IE 才能读取的非标准语法,为了使 KHTML 引擎可呈现的网页达到最多,部分 IE 专属的语法也一并支援。

  KHTML 拥有速度快捷的优点,但对错误语法的容忍度则比 Mozilla 产品所使用的 Gecko 引擎小。

  苹果电脑于 2002 年采纳了 KHTML,作为开发 Safari 浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的 WebCore 及 WebKit 引擎,它们均是 KHTML 的衍生产品,在开发网站列出引擎改变内容,并会传回至 KDE 计划。由于两个衍生产品各走不同路线,使两者源代码偏离,在与 KDE 交换更新会出现困难。其中一个原因,是苹果在对外公开源代码之前,以一年时间编修他们的 KHTML。另外,苹果传送更新至 KDE 计划的方式,多是一口气把大量改动一起传送,KDE 在整理资料也出现一定的困难,及后苹果表示会以 CVS 格式来传送。再者,苹果所作出的改动包括 Mac OS X 系统独有的事物,如 Objective-C、KWQ 等,在 Linux 及 KHTML 是没有的。但 KDE 方面仍透过这些改动,为 KHTML 加入新功能及加快其排版速度。

  WebCore 是苹果公司开发的、是在引擎『KHTML』的基础上而来的。苹果电脑于 2002 年采纳了 KHTML,后来发表了开放源代码的 WebCore 及 WebKit 引擎,它们均是 KHTML 的衍生产品。使用 WebCore 的主要有 Safari,此外还有 OmniWeb、Shiira、Swift 等。

  WebKit:

  WebKit 是一个开源浏览器引擎,同时 WebKit 也是苹果 Mac OS X 系统引擎框架版本的名称。

  目前使用 WebKit 引擎的浏览器主要有:Chrome(google 出品)、Safari(Apple 出品)、Midori 等。2009 年推出的 Safari 和 Chrome 使用的 Webkit 引擎完全通过了 acid3 测试满分!

  Konqueror 是 KDE 桌面系统的一部分。

本文出自微歌,转载时请注明出处及相应链接。

本文永久链接: http://wego2.com/wang-luo-ji-chu-zhi-shi-ke-pu-liu-lan-qi-de-nei-he.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Ɣ回顶部