原文:http://taligarsiel.com/Projects/howbrowserswork1.htm

Web browsers are probably the most widely used software. In this book I will explain how they work behind the scenes. We will see what happens when you type 'google.com' in the address bar until you see the Google page on the browser screen.

浏览器也许是使用得最广泛的软件,在这本书里,我会解析一下它背后的工作原理。我们会看到从你在地址栏输入“google.com”到浏览器显示google网页这当中发生了什么。

The browsers we will talk about

我们要谈论的浏览器

There are five major browsers used today - Internet Explorer, Firefox, Safari, Chrome and Opera. 
I will give examples from the open source browsers - Firefox,Chrome and Safari, which is partly open source. 
According to the W3C browser statistics, currently(October 2009), the usage share of Firefox, Safari and Chrome together is nearly 60%. 
So nowdays open source browsers are a substantial part of the browser business.

今天有五种主要的浏览器:Internet Explorer, Firefox, Safari, Chrome and Opera. 我举的例子基于开源浏览器----根据统计,它们的使用率接近60%

The browser's main functionality

浏览器的主要功能

The browser main functionality is to present the web resource you choose, by requesting it from the server and displaying it on the browser window. The resource format is usually HTML but also PDF, image and more. The location of the resource is specified by the user using a URI (Uniform resource Identifier). More on that in the network chapter.

浏览器的主要功能是为你展现web资源,浏览器从服务器上请求资源显示在界面上。资源的格式通常是HTML但是也有PDF、图片等等。资源的地址用URI来表示。

The way the browser interprets and displays HTML files is specified in the HTML and CSS specifications. These specifications are maintained by the W3C (World Wide Web Consortium) organization, which is the standards organization for the web. 
The current version of HTML is 4 (http://www.w3.org/TR/html401/). Version 5 is in progress. The current CSS version is 2 (http://www.w3.org/TR/CSS2/) and version 3 is in progress. 
For years browsers conformed to only a part of the specifications and developed their own extensions. That caused serious compatibility issues for web authors. Today most of the browsers more or less conform to the specifications.

浏览器根据HTML和CSS标准解析和展示HTML文件。这些标准由W3C维护。多年来,浏览器仅仅实现部分标准,因此对web内容作者造成了严重的兼容性问题。

Browsers' user interface have a lot in common with each other. Among the common user interface elements are:

Address bar for inserting the URI

Back and forward buttons
Bookmarking options
A refresh and stop buttons for refreshing and stopping the loading of current documents
Home button that gets you to your home page
Strangely enough, the browser's user interface is not specified in any formal specification, it is just good practices shaped over years of experience and by browsers imitating each other. The HTML5 specification doesn't define UI elements a browser must have, but lists some common elements. Among those are the address bar, status bar and tool bar. There are, of course, features unique to a specific browser like Firefox downloads manager. 
More on that in the user interface chapter.

浏览器的UI有很多共通的部分,包括:地址栏、前后按钮、书签、刷新和停止、主页

The browser's high level structure

The browser's main components are (1.1):

The user interface - this includes the address bar, back/forward button, bookmarking menu etc. Every part of the browser display except the main window where you see the requested page.
The browser engine - the interface for querying and manipulating the rendering engine.
The rendering engine - responsible for displaying the requested content. For example if the requested content is HTML, it is responsible for parsing the HTML and CSS and displaying the parsed content on the screen.
Networking - used for network calls, like HTTP requests. It has platform independent interface and underneath implementations for each platform.
UI backend - used for drawing basic widgets like combo boxes and windows. It exposes a generic interface that is not platform specific. Underneath it uses the operating system user interface methods.
JavaScript interpreter. Used to parse and execute the JavaScript code.
Data storage. This is a persistence layer. The browser needs to save all sorts of data on the hard disk, for examples, cookies. The new HTML specification (HTML5) defines 'web database' which is a complete (although light) database in the browser.

浏览器的主要组件

1、用户界面:包括地址栏,诸如此类

2、browser engine:用于查询和处理rendering engine

3、rendering engine:负责显示请求的内容,比如解析HTML和CSS并显示到屏幕上

4、networking:网络调用,平台独立

5、UI backend:UI组件

6、js解析器:解析和执行js代码

7、数据存储:持久层,比如保存cookies。

It is important to note that Chrome, unlike most browsers, holds multiple instances of the rendering engine - one for each tab,. Each tab is a separate process.

请注意,chrome与众不同,它为每个tab维持一个rendering engine,每个tab是一个单独的进程。

I will devote a chapter for each of these components.

Communication between the components

Both Firefox and Chrome developed a special communication infrastructures. They will be discussed in a special chapter.

firefox和chrome都有一个特殊的通信架构。

How browsers work----Introduction相关推荐

  1. Introduction to the Peer-to-Peer Sockets Project

    http://onjava.com/lpt/a/4421 ------------------------------------------------------------      Publi ...

  2. Blender 3.0基础入门学习教程 Introduction to Blender 3.0

    成为Blender通才,通过这个基于项目的循序渐进课程学习所有主题的基础知识. 你会学到什么 教程获取:Blender 3.0基础入门学习教程 Introduction to Blender 3.0- ...

  3. 网络增强现实开发简介 Introduction to Web AR development

    搭配webXR.mindAR.three.js和tensorflow.js 你会学到: 获得构建不同类型的网络增强现实应用程序的实践经验,包括图像效果.人脸效果和世界效果 获得关于增强现实如何在网络浏 ...

  4. ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush

    ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush ...

  5. 视频色彩校正简介 Introduction to Video Color Correction

    视频色彩校正简介 Introduction to Video Color Correction 视频色彩校正简介 Introduction to Video Color Correction MP4 ...

  6. [转]Introduction of iSCSI Target in Windows Server 2012

    Introduction of iSCSI Target in Windows Server 2012 源地址:http://blogs.technet.com/b/filecab/archive/2 ...

  7. MS UI Automation Introduction

    MS UI Automation Introduction 2014-09-17 MS UI Automation是什么 UIA架构 UI自动化模型 UI自动化树概述 UI自动化控件模式概述 UI 自 ...

  8. 音频(3):iPod Library Access Programming Guide:Introduction

    Next Introduction 介绍 iPod库访问(iPod Library Access)让应用程序可以播放用户的歌曲.有声书.和播客.这个API设计使得基本播放变得非常简单,同时也支持高级的 ...

  9. 2018-3-25论文(Whale Optimizer Algorithm)+(Gery Wolf Optimizer)笔记二---Introduction 对比

    代码以及文论的来源: Seyedali Mirjalili http://www.alimirjalili.com/Projects.html 感谢作者!!! 2014年GWO Introductio ...

  10. 北航云计算公开课 01 Introduction to Cloud Computing

    北航云计算公开课 01 Introduction to Cloud Computing_邓侃_新浪博客 北航云计算公开课 01 Introduction to Cloud Computing 受北航软 ...

最新文章

  1. 爬虫之lxml模块中etree.tostring函数的使用
  2. 【错误归纳】IndexError: single positional indexer is out-of-bounds
  3. 2019年人工智能硬件与应用大趋势
  4. assert()函数用法总结【转】
  5. 多文件编程 【多文件编程】(26)
  6. Ubuntu14.04设置开机可以以root用户身份登录
  7. 淘宝客网站赚钱攻略浅谈
  8. std::move()源码分析
  9. 什么是协方差(covariance)?(延伸到 协方差矩阵、多元高斯分布、PCA)
  10. 小学认识计算机说课ppt,“认识计算机”说课稿.ppt
  11. 当当网上书店购物车——源码
  12. markdown 设置目录跳转的简单方法
  13. Win10 Delete键失效怎么办 ?
  14. Android打开系统自带文件管理器,全选菜单选项
  15. [URL ]pixiv.net p站用户账号注销网页网址(电脑web版)
  16. Mac 开启 HIDPI 设置各种分辨率 HIDPI mac high sierra 2k
  17. 计算机网络 计算路由表
  18. 从iQOOZ1到iQOOZ1x,iQOO何以能持续打造爆款?
  19. 禁用iOS7系统自带的手势 pop
  20. 嵌入式:S3C2410与S3C2440的区别

热门文章

  1. 营销科学学会2021年年会揭晓玫琳凯博士论文奖得主
  2. Node 的 cross-env 模块
  3. PAT A1038 Recover the Smallest Number ——醉里挑灯看剑
  4. WinEdit10 添加论文引用,XeLaTex编译后论文中的引用变成了【?】
  5. 对比excel 轻松学python百度云_解读《对比Excel轻松学习Python数据分析》
  6. 在线读书——孙天泽(嵌入式设计及Linux驱动开发指南——基于ARM9处理器)
  7. jupyter 下进行markdown
  8. 怎么把蓝狐上的代码转为html,Ajax动态调用用户控件输出html
  9. Bloodsucker ZOJ - 3551(期望DP)
  10. 实用思维导图、流程图模板合集,让你的头脑灵活起来