• 现代浏览器的组成与结构

    浏览器的结构设计
    服务器君一共花费 16.205 ms 进行了 3 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    浏览器的组成

    想要知道浏览器的工作原理以及浏览器的内核,我们要先知道浏览器的结构。

    简单来说浏览器可以分为两部分,shell+内核。其中shell的种类相对比较多,内核则比较少。

    Shell是指浏览器的外壳:例如菜单,工具栏等。主要是提供给用户界面操 作,参数设置等等。它是调用内核来实现各种功能的。

    内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些浏览器并不区分外壳和内核。 从Mozilla将Gecko独立出来后,才有了外壳和内核的明确划分。目前主流的浏览器有IE6、IE8、Mozilla、FireFox、Opera、Safari、Chrome、Netscape等。

    浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至 显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内 容的应用程序都需要内核。

    JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引 擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个ACID来测试引擎的兼容性和性 能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有10多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、 Presto、Webkit。

    浏览器的结构

    浏览器一般由以下组件构成 :

    1. 用户界面。包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗口显示的您请求的页面外,其他显示的各个部分都属于用户界面。
    2. 浏览器引擎。在用户界面和呈现引擎之间传送指令。
    3. 呈现引擎。负责显示请求的内容。如果请求的内容是 HTML,它就负责解析 HTML 和 CSS 内容,并将解析后的内容显示在屏幕上。
    4. 网络。用于网络调用,比如 HTTP 请求。其接口与平台无关,并为所有平台提供底层实现。
    5. 用户界面后端。用于绘制基本的窗口小部件,比如组合框和窗口。其公开了与平台无关的通用接口,而在底层使用操作系统的用户界面方法。
    6. JavaScript 解释器。用于解析和执行 JavaScript 代码。
    7. 数据存储。这是持久层。浏览器需要在硬盘上保存各种数据,例如 Cookie。新的 HTML 规范 (HTML5) 定义了“网络数据库”,这是一个完整(但是轻便)的浏览器内数据库。

    这么列出来可能不是很直观,看一下下面的图就清晰了:

    浏览器的主要组件

    这里要单独提一下Chrome。和大多数浏览器不同,Chrome 浏览器的每个标签页都分别对应一个呈现引擎实例。每个标签页都是一个独立的进程。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [JavaScript程序设计] Web实时通信技术名词解析 5 个条目
  2. [Python程序设计] urls.py设置技巧 8 个条目
  3. [Python程序设计] Django模板系统 11 个条目
  4. [运维管理] 路由器与交换机 4 个条目
  5. [移动开发] Android 网络通信框架Volley 1 个条目
  6. [移动开发] Android加载器Loaders 5 个条目
  7. [移动开发] Content Provider内容提供者 3 个条目
  8. [Linux操作系统] 基本 Linux Shell 命令 2 个条目
  9. [JavaScript程序设计] 关于HTTP Keep-Alive 6 个条目
  10. [移动开发] 使用support-v7 ActionBar前的那些坑 3 个条目
  11. [移动开发] ListView 使用相关问题集 1 个条目
  12. [智力开发与知识管理] 整体性学习步骤 9 个条目
窗口 -- [协会]