浏览器工作原理拆解分析

合集下载

浏览器工作原理

浏览器工作原理

从输入网址到显示页面:浏览器工作原理拆解分析本文将深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首先嘛,你得在浏览器里输入网址:2. 浏览器查找域名的IP地址导航的第一步是通过访问的域名找出其IP地址。

DNS查找过程如下:1.浏览器缓存–浏览器会缓存DNS记录一段时间。

有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。

2.系统缓存–如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。

这样便可获得系统缓存中的记录。

3.路由器缓存–接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。

4.ISP DNS 缓存–接下来要check的就是ISP缓存DNS的服务器。

在这一般都能找到相应的缓存记录。

5.递归搜索–你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器。

一般DNS服务器的缓存中会有.co m域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。

DNS递归查找如下图所示:DNS有一点令人担忧,这就是像 或者这样的整个域名看上去只是对应一个单独的IP地址。

还好,有几种方法可以消除这个瓶颈:1. 循环DNS 是DNS查找时返回多个IP时的解决方案。

举例来说,Faceboo 实际上就对应了四个IP地址。

2. 负载平衡器是以一个特定IP地址进行侦听并将网络请求转发到集群服务器上的硬件设备。

一些大型的站点一般都会使用这种昂贵的高性能负载平衡器。

3. 地理DNS 根据用户所处的地理位置,通过把域名映射到多个不同的IP地址提高可扩展性。

这样不同的服务器不能够更新同步状态,但映射静态内容的话非常好。

4. Anycast是一个IP地址映射多个物理主机的路由技术。

美中不足,Anycast 与TCP协议适应的不是很好,所以很少应用在那些方案中。

《Web浏览器工作原理解析》

《Web浏览器工作原理解析》

《Web浏览器工作原理解析》Web浏览器工作原理解析Web浏览器已经成为我们生活中不可或缺的重要工具。

它为我们提供了许多方便,比如我们可以轻松浏览互联网上的网页,查看邮件以及享受多种多样的娱乐和社交服务。

但是,对于Web浏览器的工作原理,很多人还是一知半解。

在这篇文章中,我们将深入了解Web浏览器的工作原理,帮助大家更好地理解和掌握Web浏览器。

一、Web浏览器简介Web浏览器是一种客户端软件,主要用于访问和解析互联网上的网页。

Web 浏览器的功能不仅仅是简单地显示网页内容,还包括与服务器进行交互,解析HTML和CSS,以及实现一些高级功能,比如JavaScript代码执行和插件支持等。

常见的Web浏览器有IE、Chrome、Firefox、Safari和Opera等。

它们都有自己的特色和优点。

例如,IE通常被认为是Windows系统的默认浏览器,Chrome则以快速和安全性见长,Firefox支持大量的插件和扩展,Safari 是苹果公司的默认浏览器,而Opera则专注于流媒体和内置VPN功能等。

二、Web浏览器的结构Web浏览器的结构一般分为五个层次,包括用户界面层、浏览器引擎层、渲染引擎层、网络层和操作系统层。

用户界面层主要负责显示和操作Web浏览器的用户界面,例如地址栏、菜单、工具栏和书签等。

浏览器引擎层则负责处理用户界面和渲染引擎之间的交互,执行用户的指令并将其传递给渲染引擎进行处理。

渲染引擎层是Web浏览器的核心部分。

它主要用于解析HTML和CSS代码,并将它们转换成网页的可视化渲染,包括文字、图片、音频和视频等。

渲染引擎层主要包括两个部分:HTML解析器和CSS解析器。

HTML解析器将HTML代码转换成浏览器结构树,CSS解析器则将CSS代码转换成样式规则,并将其应用到结构树上。

网络层主要负责管理HTTP协议和其他网络协议。

它可以缓存请求和响应,以减少网络传输的重复。

操作系统层可以提供访问硬件的底层API,例如磁盘、内存和图像等。

WEB浏览器工作原理

WEB浏览器工作原理

WEB浏览器工作原理引言概述:WEB浏览器是我们日常使用最频繁的软件之一,它能够将互联网上的网页内容呈现给用户。

然而,很多人并不了解WEB浏览器的工作原理。

本文将详细介绍WEB浏览器的工作原理,包括URL解析、HTTP请求、渲染引擎和页面呈现等方面。

一、URL解析1.1 URL的结构URL(Uniform Resource Locator)是用于标识互联网上资源的地址。

它包含了协议、主机名、路径和查询等部分。

协议指定了浏览器与服务器之间的通信规则,主机名指定了资源所在的服务器,路径指定了资源在服务器上的位置,查询用于传递参数。

1.2 URL解析过程当用户在浏览器中输入一个URL时,浏览器会对其进行解析。

首先,浏览器会判断协议类型,如HTTP或HTTPS。

然后,浏览器会解析主机名,通过DNS解析获取服务器的IP地址。

接下来,浏览器会解析路径和查询等参数。

最后,浏览器会将解析后的URL传递给下一步的HTTP请求。

1.3 URL编码URL中的某些字符可能会引起歧义或冲突,因此需要进行编码。

浏览器会将URL中的非安全字符使用特定编码方式进行替换,以确保传输的正确性。

常见的编码方式包括百分号编码和Base64编码等。

二、HTTP请求2.1 请求的发送在解析完URL后,浏览器会根据协议类型(如HTTP)创建一个与服务器的连接。

然后,浏览器会构建一个HTTP请求报文,包括请求方法(如GET或POST)、请求头部和请求体等信息。

请求头部包含了一些关于请求的附加信息,如User-Agent、Cookie和Referer等。

2.2 请求的传输浏览器将构建好的请求报文通过网络传输给服务器。

这个过程通常使用TCP/IP协议进行,浏览器会将请求报文分割成一个个数据包,并通过网络传输给服务器。

服务器接收到请求后,会进行相应的处理。

2.3 响应的接收服务器处理完请求后,会生成一个HTTP响应报文,并将其发送给浏览器。

响应报文包含了状态码、响应头部和响应体等信息。

浏览器工作原理

浏览器工作原理

浏览器工作原理浏览器作为我们日常生活中不可或缺的工具,扮演着连接我们与互联网世界的桥梁角色。

那么,究竟浏览器是如何工作的呢?接下来,我们将深入探讨浏览器的工作原理。

首先,我们需要了解的是浏览器的结构。

一个典型的浏览器包含了用户界面、浏览器引擎、渲染引擎、网络、用户界面后端、JavaScript解释器等几个核心模块。

用户界面负责展示浏览器窗口的各个部分,浏览器引擎则提供了一个用于操作用户界面和渲染引擎的接口。

渲染引擎负责将请求的内容展示在浏览器窗口中,网络模块则负责网络资源的加载,而JavaScript解释器则用于解释和执行JavaScript代码。

当用户输入一个URL或者点击链接时,浏览器引擎会向网络模块发起请求,网络模块则会向服务器请求相应的资源。

一旦资源被获取,浏览器引擎会将其传递给渲染引擎进行处理。

渲染引擎会解析HTML和CSS,并将其转换为可供浏览器引擎操作的文档对象模型(DOM)和渲染树。

接着,浏览器引擎会利用用户界面后端将渲染树展示在用户界面上。

同时,如果页面中存在JavaScript代码,JavaScript解释器会对其进行解释和执行,从而实现页面的交互功能。

除了上述基本的工作流程外,现代浏览器还包含了诸如缓存、安全机制、插件等多种功能。

浏览器会利用缓存机制来提高页面加载速度,安全机制则用于防范恶意网站和网络攻击,而插件则可以为浏览器增加各种额外的功能,如广告拦截、密码管理等。

总的来说,浏览器的工作原理可以简单概括为用户输入URL或点击链接,浏览器引擎向网络模块发起请求,获取资源后交由渲染引擎处理并展示在用户界面上,同时执行JavaScript代码实现页面交互功能。

除此之外,浏览器还包含了多种功能模块,如缓存、安全机制和插件,为用户提供更加便捷、安全和丰富的浏览体验。

通过对浏览器工作原理的深入了解,我们可以更好地理解浏览器在背后的运作机制,从而更好地利用浏览器为我们的生活和工作带来便利。

浏览器的工作原理

浏览器的工作原理

浏览器的工作原理浏览器作为我们日常生活中不可或缺的工具,其工作原理是怎样的呢?在我们打开浏览器,输入网址,然后就可以访问各种网页的背后,浏览器是如何运作的呢?接下来,我们就来一探究竟。

首先,当我们输入一个网址并按下回车键时,浏览器会将这个网址发送给一个称为域名系统(DNS)的服务器。

DNS服务器会将网址转换成对应的IP地址,这样浏览器才能找到正确的服务器。

接着,浏览器会向服务器发送请求,请求服务器发送网页的内容。

服务器接收到请求后,会将网页的HTML、CSS、JavaScript等文件发送回浏览器。

浏览器接收到这些文件后,会先解析HTML文件,构建出网页的结构。

然后,浏览器会解析CSS文件,渲染出网页的样式和布局。

最后,浏览器会执行JavaScript文件,实现网页的交互功能。

在这个过程中,浏览器会利用缓存来提高网页的加载速度。

当我们再次访问同一个网页时,浏览器会先检查缓存中是否有该网页的副本,如果有的话就直接从缓存中加载,不需要再次向服务器发送请求。

除了以上的工作原理,浏览器还有一些其他的功能。

比如,浏览器会对网页进行安全检查,防止恶意网站对用户造成伤害。

此外,浏览器还支持插件和扩展,用户可以根据自己的需要安装各种插件,来扩展浏览器的功能。

总的来说,浏览器的工作原理可以简单概括为,发送请求、接收响应、解析文件、渲染页面、执行JavaScript、利用缓存、进行安全检查、支持插件扩展等一系列过程。

通过这些过程,我们才能够在浏览器上畅快地浏览各种网页。

希望通过本文的介绍,读者能够对浏览器的工作原理有一个更清晰的认识,也能够更加深入地理解浏览器在我们日常生活中的重要作用。

浏览器的原理

浏览器的原理

浏览器的原理浏览器的原理可以分为以下几个方面:1. 用户界面:浏览器的用户界面由地址栏、导航按钮、书签栏、菜单栏等组成,用户可以通过这些界面与浏览器进行交互。

2. 解析URL:当用户在地址栏中输入一个URL时,浏览器会将该URL解析成协议、域名、路径等部分,以便后续进行网络请求。

3. 网络请求:浏览器使用HTTP协议发送网络请求,请求资源包括HTML、CSS、JavaScript、图片等。

浏览器将请求发送给服务器,并等待服务器的响应。

4. 渲染引擎:浏览器的渲染引擎负责将接收到的HTML、CSS等资源解析成用户可见的网页。

渲染引擎会将HTML文档转换成DOM树,并根据CSS样式表进行样式计算,然后将DOM树和样式表生成渲染树。

最后,渲染引擎会根据渲染树来绘制网页。

5. JavaScript引擎:浏览器内置了JavaScript引擎,用于执行网页中的JavaScript代码。

当渲染引擎遇到JavaScript代码时,会将其交给JavaScript引擎处理。

JavaScript引擎会将代码解释成字节码或机器码,并执行代码逻辑。

6. 布局和绘制:渲染引擎将渲染树分割成多个图层,每个图层包含独立的元素。

在布局阶段,浏览器会计算每个元素的大小、位置等布局信息。

然后,在绘制阶段,浏览器会将布局信息转换成屏幕上的像素,最终显示在用户界面中。

7. 回流与重绘:当网页的布局发生变化时,浏览器需要重新计算元素的大小和位置,这个过程称为回流。

回流会导致浏览器重新布局和绘制整个页面,消耗较大的资源。

而当元素的样式发生变化,但不影响布局时,浏览器只需要重新绘制受影响的部分,这个过程称为重绘。

8. 缓存机制:浏览器会使用缓存来提高网页的加载速度。

当浏览器请求资源时,会先检查缓存中是否有相应的资源,如果有,则直接从缓存中获取,而不是发送网络请求。

9. 安全机制:浏览器通过实现安全机制来保护用户的隐私和安全。

例如,浏览器会对网站的证书进行验证,防止用户访问受到篡改的网站。

WEB浏览器工作原理

WEB浏览器工作原理

WEB浏览器工作原理Web浏览器是我们日常使用的一种软件,它能够让我们浏览互联网上的各种网页。

那么,它是如何工作的呢?在这篇文章中,我们将详细介绍Web浏览器的工作原理。

1. 用户界面Web浏览器的用户界面通常由地址栏、前进和后退按钮、书签栏、菜单栏等组成。

用户可以通过界面与浏览器进行交互,输入网址、点击链接等操作。

2. URL解析当用户在地址栏中输入一个网址时,浏览器会对该网址进行解析。

首先,浏览器会检查输入的网址是否合法,并添加协议头(如http://或https://)如果用户没有输入。

然后,浏览器会将网址分解成主机名、路径、查询参数等部分。

3. DNS解析在进行网络通信之前,浏览器需要将主机名转换为IP地址。

这个过程称为DNS解析。

浏览器会向本地DNS服务器发送一个查询请求,本地DNS服务器会返回与主机名对应的IP地址。

4. 建立连接一旦浏览器获得了目标服务器的IP地址,它就会使用HTTP协议与服务器建立连接。

建立连接的过程包括三次握手,即浏览器向服务器发送一个连接请求,服务器回复确认,最后浏览器再次回复确认。

5. 发送请求连接建立后,浏览器会向服务器发送HTTP请求。

请求中包含了请求方法(如GET或POST)、请求头(如Accept、User-Agent等)和请求体(对于POST请求)等信息。

服务器根据这些信息来处理请求,并返回相应的数据。

6. 接收响应服务器接收到浏览器的请求后,会根据请求的内容进行处理,并生成相应的响应。

响应中包含了状态码、响应头和响应体等部分。

状态码表示服务器对请求的处理结果,响应头包含了响应的一些元信息,而响应体则是服务器返回的实际数据。

7. 渲染页面一旦浏览器接收到服务器返回的响应,它就会开始解析响应并渲染页面。

浏览器会根据响应头中的Content-Type字段确定响应的数据类型,如HTML、CSS、JavaScript等。

然后,浏览器会解析这些数据,并将其转换成可视化的页面。

WEB浏览器工作原理

WEB浏览器工作原理

WEB浏览器工作原理一、概述WEB浏览器是我们日常生活中时常使用的工具,它能够将我们输入的网址转化为可视化的网页内容。

本文将详细介绍WEB浏览器的工作原理,包括URL解析、HTTP请求、渲染引擎、页面布局和渲染等方面。

二、URL解析当我们在浏览器地址栏中输入一个URL时,浏览器首先会对该URL进行解析。

URL通常由协议、主机名、端口号、路径和查询参数等组成。

浏览器会根据这些信息来确定要访问的服务器和资源。

三、HTTP请求一旦URL解析完成,浏览器会根据URL中的协议(通常是HTTP或者HTTPS)发起相应的网络请求。

浏览器会构建一个HTTP请求报文,包括请求方法(GET、POST等)、请求头部(Accept、User-Agent等)和请求体(对于POST请求)。

然后浏览器会将该请求发送给服务器。

四、服务器响应服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行相应的处理。

服务器会构建一个HTTP响应报文,包括响应状态码(200表示成功、404表示资源未找到等)、响应头部(Content-Type、Content-Length等)和响应体(返回的网页内容)。

然后服务器将该响应发送给浏览器。

五、渲染引擎浏览器接收到服务器的响应后,会将响应报文交给渲染引擎进行处理。

渲染引擎负责解析HTML、CSS和JavaScript等网页内容,并将其转化为可视化的页面。

渲染引擎通常由解析器和布局引擎组成。

六、页面布局和渲染渲染引擎会将解析后的网页内容进行布局和渲染。

布局引擎负责确定网页中各个元素的位置和大小,而渲染引擎则负责将这些元素绘制到屏幕上。

渲染过程中还包括图象加载、字体渲染和动画效果等。

七、用户交互当网页加载完成后,用户可以与页面进行交互。

用户可以点击链接、填写表单、滚动页面等。

浏览器会根据用户的操作生成相应的事件,并通过JavaScript脚本来处理这些事件。

用户交互可以使页面实现更多的功能和效果。

浏览器的工作原理

浏览器的工作原理

浏览器的工作原理浏览器是一种用于访问和浏览互联网上网页的软件应用程序。

它的工作原理可以分为如下几个步骤:1. 用户输入URL:用户在浏览器的地址栏中输入要访问的网页的URL(统一资源定位符)。

2. DNS解析:浏览器将URL中的主机名发送给DNS(域名系统)服务器,以获取网页所对应的IP地址。

3. 建立TCP连接:浏览器使用HTTP(超文本传输协议)通过互联网与服务器建立TCP连接。

4. 发送HTTP请求:一旦TCP连接建立,浏览器会向服务器发送一个HTTP请求,请求包含要获取的资源信息,例如网页的HTML文件和其中的图片、文本等。

5. 服务器响应:服务器接收到HTTP请求后,会返回一个HTTP响应,其中包含所请求的资源数据。

6. 下载资源:浏览器解析响应数据,将其中的HTML、CSS和JavaScript等文件进行下载。

7. 解析和渲染:浏览器根据下载的HTML文件构建DOM(文档对象模型),解析CSS文件构建CSSOM(CSS对象模型),并将两者合并为渲染树。

同时,浏览器还执行JavaScript代码添加交互功能。

8. 呈现页面:浏览器使用解析和渲染后的渲染树,通过将文本、图像和其他媒体对象绘制到屏幕上,显示最终的网页内容。

9. 用户交互与网络请求:用户可以与网页进行交互,点击链接、填写表单等操作会触发浏览器发送新的HTTP请求,从而获取新的资源数据。

10. 页面更新:如果接收到新的资源数据,浏览器会更新渲染树,并将新的内容呈现给用户。

如果用户关闭了标签页或者打开了新的网页,浏览器会终止当前网页的下载和渲染。

以上是浏览器工作的基本流程,通过这些步骤,浏览器能够从互联网上获取并展示网页内容,为用户提供丰富的网络体验。

浏览器工作原理(图)

浏览器工作原理(图)

前端必读:浏览器内部工作原理目录一、介绍二、渲染引擎三、解析与DOM树构建四、渲染树构建五、布局六、绘制七、动态变化八、渲染引擎的线程九、CSS2可视模型一、介绍浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入到你看到google主页过程中都发生了什么。

将讨论的浏览器今天,有五种主流浏览器——IE、Firefox、Safari、Chrome及Opera。

本文将基于一些开源浏览器的例子——Firefox、Chrome及Safari,Safari是部分开源的。

根据W3C(World Wide Web Consortium万维网联盟)的浏览器统计数据,当前(2011年5月),Firefox、Safari及Chrome的市场占有率综合已接近60%。

(原文为2009年10月,数据没有太大变化)因此,可以说开源浏览器已经占据了浏览器市场的半壁江山。

浏览器的主要功能浏览器的主要功能是将用户选择的web资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是HTML,也包括PDF、image及其他格式。

用户用URI(Uniform Resource Identifier统一资源标识符)来指定所请求资源的位置,在网络一章有更多讨论。

HTML和CSS规范中规定了浏览器解释html文档的方式,由W3C组织对这些规范进行维护,W3C是负责制定web标准的组织。

HTML规范的最新版本是HTML4(/TR/html401/),HTML5还在制定中(译注:两年前),最新的CSS规范版本是2(/TR/CSS2),CSS3也还正在制定中(译注:同样两年前)。

这些年来,浏览器厂商纷纷开发自己的扩展,对规范的遵循并不完善,这为web开发者带来了严重的兼容性问题。

但是,浏览器的用户界面则差不多,常见的用户界面元素包括:∙用来输入URI的地址栏∙前进、后退按钮∙书签选项∙用于刷新及暂停当前加载文档的刷新、暂停按钮∙用于到达主页的主页按钮奇怪的是,并没有哪个正式公布的规范对用户界面做出规定,这些是多年来各浏览器厂商之间相互模仿和不断改进的结果。

前端开发技术中的浏览器引擎解析原理

前端开发技术中的浏览器引擎解析原理

前端开发技术中的浏览器引擎解析原理浏览器引擎解析原理在前端开发技术中扮演着重要的角色。

作为前端开发人员,我们需要深入了解浏览器引擎的工作原理,以更好地优化和调试我们的网页。

1. 引擎结构浏览器引擎由多个模块组成,包括解析器、渲染器和解释器等。

其中,解析器负责将 HTML、CSS 和 JavaScript 解析为浏览器可以理解的内部数据结构。

渲染器负责将解析后的内容绘制到屏幕上,而解释器则负责执行 JavaScript 代码。

2. HTML 解析HTML 解析器的主要任务是将 HTML 文档转换为 DOM 树。

DOM(文档对象模型)树是一个由节点组成的树状结构,表示了 HTML 文档的结构和内容。

解析器会逐行读取 HTML 文档,并拆解标签、属性和内容等信息。

通过分析标签之间的层次关系,解析器构建出完整的 DOM 树。

3. 解析算法解析算法决定了解析器如何解析 HTML 文档。

常见的解析算法有自上而下的解析算法和自下而上的解析算法。

自上而下的解析算法从根节点开始解析,逐步构建 DOM 树。

它的优点是能够在解析的同时渲染页面,但在遇到需要下载外部资源的情况下,会导致页面加载速度变慢。

而自下而上的解析算法则是从底部开始解析 HTML 文档,逐步向上构建 DOM 树。

这种算法可以更快地解析 HTML 文档,但无法边解析边渲染页面。

4. CSS 解析CSS 解析器负责解析 CSS 样式表,将其转换为浏览器可以理解的样式规则。

解析器会将 CSS 文件逐行读取,并将样式属性与对应的 HTML 元素相关联。

在解析样式选择器的时候,解析器会从右往左进行匹配,以提高解析效率。

5. JavaScript 解析解释器负责执行页面中的 JavaScript 代码。

解释器会将 JavaScript 代码逐行解析,并将其转换为可执行的指令。

由于 JavaScript 是一种解释型语言,它的执行效率相对较低。

为了提高 JavaScript 代码的执行效率,现代浏览器引擎往往会将JavaScript 代码编译为二进制代码,以提高执行速度。

浏览器工作原理浅析

浏览器工作原理浅析

• Webkit使用自底向上的解析器,Gecko使用自顶向下的解析器
例子:解析“2+3-1”这个表达式
词汇表:包括整数、加号及减号。
语法: 1. 该语言的语法基本单元包括表达式、term及操作符
2. 该语言可以包括多个表达式
3. 一个表达式定义为两个term通过一个操作符连接 4. 操作符可以是加号或减号 5. term可以是一个整数或一个表达式
样式表
• 样式表采用另一种不同的模式。 • 理论上,既然样式表不改变Dom树,也就没有必要停下文档的解析
等待它们,然而,存在一个问题,脚本可能在文档的解析过程中请求
样式信息,如果样式还没有加载和解析,脚本将得到错误的值,显然 这将会导致很多问题,这看起来是个边缘情况,但确实很常见。
• Firefox在存在样式表还在加载和解析时阻塞所有的脚本,而chrome
浏览器容错
• 浏览器都具有错误处理的能力,但是,另人惊讶的是,这并不是html 最新规范的内容,就像书签及前进后退按钮一样,它只是浏览器长期
发展的结果。
• 解析器将符号化的输入解析为文档并创建文档,但不幸的是,我们必 须处理很多没有很好格式化的html文档,至少要小心下面几种错误情
况。
– 标签未关闭 – 标签嵌套错误
CSS解析器
• Webkit使用自底向上的解析器,Gecko使用自顶向下的解析器 • 它们都是将每个css文件解析为样式表对象,每个对象包含css规则,
css规则对象包含选择器和声明对象,以及其他一些符合css语法的对
象。
脚本解析
javascript
脚本
• web的模式是同步的,开发者希望解析到一个script标签时立即解析 执行脚本,并阻塞文档的解析直到脚本执行完。

WEB浏览器工作原理

WEB浏览器工作原理

WEB浏览器工作原理WEB浏览器是我们日常生活中经常使用的软件,它的主要功能是用于浏览互联网上的网页。

在使用浏览器的过程中,我们可以通过输入网址或者进行搜索来访问不同的网页。

那么,WEB浏览器是如何工作的呢?一、用户界面WEB浏览器的用户界面通常由地址栏、导航按钮、标签页、书签等组成。

用户可以通过地址栏输入网址或者搜索关键词,浏览器会根据用户的输入进行相应的操作。

二、URL解析当用户输入一个网址或者搜索关键词后,浏览器会对输入进行解析。

解析过程主要包括以下几个步骤:1. 提取协议:浏览器会根据输入的内容提取出协议,如HTTP、HTTPS等。

2. 提取主机名:浏览器会从输入中提取出主机名,用于确定要访问的服务器。

3. 提取端口号:如果输入中包含端口号,则浏览器会提取出来。

否则,会使用默认的端口号。

4. 提取路径和查询参数:如果输入中包含路径和查询参数,浏览器会提取出来,用于向服务器请求相应的资源。

三、DNS解析在得到主机名后,浏览器需要将主机名转换为服务器的IP地址。

这个过程称为DNS解析。

浏览器会向本地DNS服务器发送查询请求,本地DNS服务器会根据域名系统的层次结构进行查询,最终返回服务器的IP地址给浏览器。

四、建立连接浏览器通过IP地址和端口号与服务器建立TCP连接。

TCP是一种可靠的传输协议,它保证了数据的可靠传输。

建立连接的过程可以分为三个步骤:1. 三次握手:浏览器向服务器发送一个连接请求报文,服务器收到后回复一个确认报文,浏览器再次回复一个确认报文,建立连接。

2. 请求报文:浏览器向服务器发送一个请求报文,包含了要请求的资源信息。

3. 响应报文:服务器接收到请求报文后,会返回一个响应报文,包含了请求的资源。

五、发送请求和接收响应浏览器发送请求报文给服务器后,服务器会根据请求报文的内容进行相应的处理,并返回响应报文给浏览器。

响应报文中包含了请求的资源的内容和相关的状态信息。

六、渲染页面浏览器接收到响应报文后,会进行页面的渲染。

WEB浏览器工作原理

WEB浏览器工作原理

WEB浏览器工作原理一、概述WEB浏览器是我们日常使用最频繁的软件之一,它能够将互联网上的网页内容以可视化的方式呈现给用户。

在我们使用浏览器访问网页时,我们往往会想知道浏览器是如何工作的。

本文将深入探讨WEB浏览器的工作原理。

二、浏览器的组成部份1. 用户界面(User Interface):浏览器的外观和交互方式,包括地址栏、菜单栏、工具栏等。

2. 浏览器引擎(Browser Engine):负责解析和渲染HTML、CSS等网页内容,并将其显示在用户界面上。

3. 渲染引擎(Rendering Engine):负责将HTML、CSS等网页内容转化为用户可以看到的视觉效果,最常见的渲染引擎有WebKit和Gecko。

4. 网络组件(Networking):负责处理网络请求,包括发送HTTP请求、接收响应等。

5. JavaScript解释器(JavaScript Interpreter):负责解析和执行网页中的JavaScript代码。

6. 数据存储(Data Storage):用于存储浏览器的缓存、Cookie等数据。

7. 插件(Plugins):用于扩展浏览器的功能,如Flash插件、PDF阅读器等。

三、浏览器的工作流程1. 用户输入URL:用户在浏览器的地址栏中输入URL(Uniform Resource Locator),比如example。

2. URL解析:浏览器将URL解析成协议、主机名、端口号、路径等信息,以便后续发起网络请求。

3. DNS解析:浏览器将主机名解析成IP地址,以便能够与服务器建立连接。

4. 建立连接:浏览器通过TCP/IP协议与服务器建立连接,可以使用HTTP或者HTTPS协议。

5. 发送请求:浏览器向服务器发送HTTP请求,请求中包含请求方法(GET、POST等)、请求头(如User-Agent、Cookie等)、请求体(如表单数据等)等信息。

6. 接收响应:服务器接收到浏览器的请求后,进行处理并生成响应,响应中包含状态码、响应头(如Content-Type、Set-Cookie等)、响应体(如HTML、CSS等)等信息。

浏览器工作原理:浅析页面循环系统-宏任务与微任务

浏览器工作原理:浅析页面循环系统-宏任务与微任务

浏览器⼯作原理:浅析页⾯循环系统-宏任务与微任务 在之前的⽂章中,我们介绍了消息队列,并结合消息队列介绍了两种典型的 WebAPI —— setTimeout 和 XMLHttpRequest ,通过这两个 WebAPI 我们搞清楚了浏览器的消息循环系统是怎么⼯作的。

不过随着浏览器的应⽤领域越来越⼴泛,消息队列中这种粗时间颗粒度的任务已经不能胜任部分领域的需求,所以⼜出现了⼀种新的技术—— 微任务。

微任务可以在实施性能和效率之间做⼀个有效的权衡。

从⽬前的情况来看,微任务已经被⼴泛地应⽤,基于微任务的技术有 MutationObserver、Promise 以及 Promise 为基础开发出来的很多其他的技术。

所以微任务的重要性也与⽇俱增,了解其底层的⼯作原理对于你读懂别⼈的代码,以及写出更⾼效、更具现代的代码有着决定性的作⽤。

有微任务,也就有宏任务,那这两者到底有什么区别?它们⼜是如何相互取长补短的?⼀、宏任务 前⾯我们已经介绍过了,页⾯中的⼤部分任务都是在主线程上执⾏的,这些任务包括了:渲染事件(如解析 DOM、计算布局、绘制);⽤户交互事件(如⿏标点击、页⾯滚动、放⼤缩⼩等);JavaScript 脚本执⾏事件;⽹络请求完成、⽂件读写完成事件。

为了协调这些任务有条不紊地在主线程上执⾏,页⾯进程引⼊了消息队列和事件循环机制,渲染进程内部会维护多个消息队列,⽐如延迟执⾏队列和普通的消息队列。

然后主线程采⽤⼀个 for 循环,不断地从这些任务队列中取出任务并执⾏任务。

我们把这些消息队列中的任务称为宏任务。

消息队列中的任务是通过事件循环系统来执⾏的,这⾥我们可以看看在中是怎么定义事件循环机制的。

由于规范需要⽀持语义上的完备性,所以通常写的都⽐较啰嗦,这⾥我就⼤致总结下 WHATWG 规范定义的⼤致流程:先从多个消息队列中选出⼀个最⽼的任务,这个任务称为 oldestTask;然后循环系统记录任务开始执⾏的时间,并把这个 oldestTask 设置为当前正在执⾏的任务;当任务执⾏完成之后,删除当前正在执⾏的任务,并从对应的消息队列中删除掉这个 oldestTask;最后统计执⾏完成的时长等信息。

浏览器渲染基本原理解析

浏览器渲染基本原理解析

浏览器渲染基本原理解析1.解析HTML浏览器从服务器接收到HTML文件后,会通过解析器对其进行解析。

解析器将HTML代码转换为DOM树,即文档对象模型。

DOM树将HTML文档中的每个元素表示为一个节点,并且这些节点之间建立了各种关系。

解析器还负责检查代码的正确性,并进行错误处理。

2.解析CSS在HTML解析过程中,浏览器还会解析CSS样式表。

它将CSS代码转换为样式规则,并存储在一个称为样式规则树的结构中。

样式规则树描述了文档中各个元素的样式信息,包括字体、颜色、布局等。

为了提高样式解析的效率,浏览器会使用一种称为样式共享的技术来减少内存使用量。

3.样式计算样式计算阶段将DOM树和样式规则树进行匹配,以确定每个元素应用的样式规则。

它会遍历DOM树,计算出每个元素的最终样式,并将这些样式信息存储在另一个树结构中,称为渲染树或绘制树。

渲染树只包含需要显示在屏幕上的元素,如可见的元素和占位符。

4.布局在布局阶段,浏览器会根据渲染树中每个元素的位置和大小信息来计算页面的布局。

它会确定每个元素在页面中的准确位置,并计算出它们相对于其他元素的布局信息。

布局过程是递归进行的,从根节点开始,沿着渲染树的深度优先顺序进行遍历。

5.绘制绘制阶段是将布局信息转化为实际的像素在屏幕上显示的过程。

浏览器通过遍历渲染树来绘制每个可见元素的内容。

绘制过程包括创建绘制表面、确定绘制的顺序、应用各种视觉效果和将像素绘制到屏幕上。

最终,用户可以看到完整的网页内容。

除了以上的基本原理外,浏览器渲染还有一些优化技术和概念:1.DOM重绘和重排当页面中的元素样式发生改变时,浏览器会进行DOM重绘和重排。

重绘是指根据新的样式信息重新绘制元素的内容,而重排是指重新计算元素的布局。

重排是比较耗费性能的操作,因此开发者应尽量减少重排的次数。

2.异步加载为了提高网页的加载速度,浏览器支持异步加载技术。

比如可以通过将JavaScript代码放在页面底部,或使用defer和async属性来延迟脚本的加载和执行,以避免阻塞页面的渲染。

浏览器的原理

浏览器的原理

浏览器的原理浏览器作为我们日常使用最频繁的软件之一,其原理和工作机制对于我们理解互联网和网络应用有着重要的意义。

浏览器的原理涉及到网络通信、页面渲染、脚本执行等多个方面,下面我们将对浏览器的原理进行简要介绍。

首先,浏览器的核心功能之一是发送网络请求和接收响应。

当我们在地址栏输入网址或点击链接时,浏览器会向服务器发送请求,请求特定的资源,比如HTML、CSS、JavaScript文件、图片、视频等。

服务器接收到请求后会返回相应的资源,浏览器再将这些资源渲染到页面上,呈现给用户。

其次,浏览器的页面渲染过程也是其原理中的重要部分。

当浏览器接收到服务器返回的HTML文件时,它会解析HTML文档,构建DOM树(文档对象模型)。

接着,浏览器会根据HTML和CSS文件构建渲染树,然后计算每个元素在页面上的位置和大小,最终将页面内容显示在用户的屏幕上。

另外,浏览器还需要执行JavaScript代码,以实现页面的交互和动态效果。

当浏览器遇到JavaScript代码时,它会解析并执行这些代码,以改变页面的结构、样式和行为。

JavaScript引擎负责解释和执行JavaScript代码,比如V8引擎用于Google Chrome浏览器。

此外,浏览器还会使用缓存来提高页面加载速度。

浏览器会将已经下载的资源(比如图片、样式表、脚本)存储在本地缓存中,下次访问相同的页面时就可以直接从缓存中读取资源,而不需要再次向服务器发送请求。

这样可以减少网络传输时间,提高页面加载速度。

最后,浏览器的安全机制也是其原理中的重要部分。

浏览器会对来自不同站点的资源进行隔离,以防止恶意网站对用户数据和计算机系统造成危害。

同源策略是浏览器安全机制的重要组成部分,它限制了来自不同源的脚本对当前页面的访问,保护了用户的隐私和安全。

综上所述,浏览器的原理涉及到网络通信、页面渲染、脚本执行、缓存和安全机制等多个方面。

了解浏览器的原理有助于我们更好地理解网络应用的工作原理,也有助于我们在开发网页和网络应用时更加高效和准确地进行调试和优化。

浏览器的工作原理:新式网络浏览器幕后揭秘

浏览器的工作原理:新式网络浏览器幕后揭秘

序言这是一篇全面介绍Webkit 和Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。

在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了很多时间来研读网络浏览器的源代码。

她写道:在IE 占据90% 市场份额的年代,我们除了把浏览器当成一个“黑箱”,什么也做不了。

但是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一探网络浏览器的内幕了。

呃,里面只有数以百万行计的C++ 代码...塔利在她的网站上公布了自己的研究成果,但是我们觉得它值得让更多的人来了解,所以我们在此重新整理并公布。

作为一名网络开发人员,学习浏览器的内部工作原理将有助于您作出更明智的决策,并理解那些最佳开发实践的个中缘由。

尽管这是一篇相当长的文档,但是我们建议您花些时间来仔细阅读;读完之后,您肯定会觉得所费不虚。

保罗·爱丽诗(Paul Irish),Chrome 浏览器开发人员事务部简介网络浏览器很可能是使用最广的软件。

在这篇入门文章中,我将会介绍它们的幕后工作原理。

我们会了解到,从您在地址栏输入 直到您在浏览器屏幕上看到Google 首页的整个过程中都发生了些什么。

我们要讨论的浏览器目前使用的主流浏览器有五个:Internet Explorer、Firefox、Safari、Chrome 浏览器和Opera。

本文中以开放源代码浏览器为例,即Firefox、Chrome 浏览器和Safari(部分开源)。

根据StatCounter 浏览器统计数据,目前(2011 年8 月)Firefox、Safari 和Chrome 浏览器的总市场占有率将近60%。

由此可见,如今开放源代码浏览器在浏览器市场中占据了非常坚实的部分。

浏览器的主要功能浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示您选择的网络资源。

这里所说的资源一般是指HTML 文档,也可以是PDF、图片或其他的类型。

浏览器工作原理:浅析浏览器中的页面-页面性能-如何系统的优化页面

浏览器工作原理:浅析浏览器中的页面-页面性能-如何系统的优化页面

浏览器⼯作原理:浅析浏览器中的页⾯-页⾯性能-如何系统的优化页⾯ 在前⾯⼏篇⽂章中,我们分析了页⾯加载和 DOM ⽣成,讨论了 JavaScript 和 CSS 是如何影响到 DOM ⽣成的,还结合渲染流⽔线来讲解了分层和合成机制,同时在这些⽂章⾥⾯,我们还穿插说明了很多优化页⾯性能的最佳实践策略。

通过这些知识点的学习,相信你已经知道渲染引擎是怎么绘制出帧的,不过之前我们介绍的内容⽐较零碎、⽐较散,那么今天我们就来将这些内容系统性地串起来。

那么怎么才能把这些知识点串起来呢?我的思路是从如何系统优化页⾯速度的⾓度来切⼊。

这⾥我们所谈论的页⾯优化,其实就是要让页⾯更快地显⽰和响应。

由于⼀个页⾯在它不同的阶段,所侧重的关注点是不⼀样的,所以如果我们要讨论页⾯优化,就要分析⼀个页⾯⽣存周期的不同阶段。

通常⼀个页⾯有三个阶段:加载阶段、交互阶段和关闭阶段。

加载阶段,是指从发出请求到渲染出完整页⾯的过程,影响到这个阶段的主要因素有⽹络和 JavaScript 脚本。

交互阶段,主要是从页⾯加载完成到⽤户交互的整合过程,影响到这个阶段的主要因素是 JavaScript 脚本。

关闭阶段,主要是⽤户发出关闭指令后页⾯所做的⼀些清理操作。

这⾥我们需要重点关注加载阶段和交互阶段。

因为影响到我们体验的因素主要都在这两个阶段,下⾯我们就来逐个详细分析下。

⼀、加载阶段 我们先来分析如何系统优化加载阶段中的页⾯,还是先看⼀个典型的渲染流⽔线,如下图所⽰: 观察上⾯这个渲染流⽔线,你能分析出来有哪些因素影响了页⾯加载速度吗?下⾯我们就先来分析下这个问题。

通过前⾯⽂章的讲解,你应该已经知道了并⾮所有的资源都会阻塞页⾯的⾸次绘制,⽐如图⽚、⾳频、视频等⽂件就不会阻塞页⾯的⾸次渲染; ⽽ JavaScript 、⾸次请求的 HTML 资源⽂件、CSS ⽂件是会阻塞⾸次渲染的,因为在构建 DOM 的过程中需要 HTML 和 JavaScript ⽂件,在构建渲染树(布局树)的过程中需要⽤到 CSS ⽂件。

WEB浏览器工作原理 (2)

WEB浏览器工作原理 (2)

WEB浏览器工作原理随着互联网的普及和发展,WEB浏览器作为人们上网的主要工具之一,其工作原理也备受关注。

本文将详细介绍WEB浏览器的工作原理,帮助读者更加深入了解这一重要的互联网工具。

一、用户输入网址1.1 用户在浏览器地址栏输入网址时,浏览器会将用户输入的网址发送给DNS 服务器进行解析。

1.2 DNS服务器将网址解析成IP地址,浏览器通过IP地址找到服务器并请求网页数据。

1.3 浏览器发送HTTP请求给服务器,请求网页数据的传输。

二、服务器处理请求2.1 服务器接收到浏览器发送的HTTP请求后,会根据请求的内容和网址,从数据库或文件系统中获取网页数据。

2.2 服务器将获取到的网页数据进行处理,包括动态生成网页内容、执行脚本、读取数据库等操作。

2.3 服务器将处理后的网页数据通过HTTP响应返回给浏览器,包括状态码、响应头和响应体。

三、浏览器渲染网页3.1 浏览器接收到服务器返回的HTTP响应后,开始解析HTML、CSS和JavaScript等网页文件。

3.2 浏览器根据解析后的网页文件,构建DOM树、CSSOM树和渲染树,确定网页的结构和样式。

3.3 浏览器根据渲染树,将网页内容绘制到屏幕上,完成网页的渲染过程。

四、交互和动态效果4.1 浏览器通过JavaScript执行网页中的脚本,实现网页的交互和动态效果。

4.2 浏览器处理用户的交互操作,如点击链接、提交表单等,触发相应的事件。

4.3 浏览器根据用户的操作和网页的状态,更新页面内容并重新渲染,实现动态效果和用户交互。

五、缓存和安全性5.1 浏览器通过缓存机制,将已经请求过的资源保存在本地,减少对服务器的请求,提高网页加载速度。

5.2 浏览器通过安全机制,对网页的内容和脚本进行安全性检查,防止恶意代码的攻击和信息泄露。

5.3 浏览器还支持HTTPS协议,通过加密通信,保护用户的隐私数据和网络安全。

综上所述,WEB浏览器的工作原理涉及用户输入网址、服务器处理请求、浏览器渲染网页、交互和动态效果以及缓存和安全性等多个方面,通过这些环节的协作,实现了用户在互联网上浏览网页的体验。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浏览器工作原理拆解分析1. 首先嘛,你得在浏览器里输入网址:2. 浏览器查找域名的IP地址导航的第一步是通过访问的域名找出其IP地址。

DNS查找过程如下:浏览器缓存——浏览器会缓存DNS记录一段时间。

有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。

系统缓存——如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows 里是gethostbyname)。

这样便可获得系统缓存中的记录。

路由器缓存——接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。

ISP DNS缓存——接下来要check的就是ISP缓存DNS的服务器。

在这一般都能找到相应的缓存记录。

递归搜索——你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器。

一般DNS服务器的缓存中会有.com域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。

DNS递归查找如下图所示:DNS有一点令人担忧,这就是像 或者 这样的整个域名看上去只是对应一个单独的IP地址。

还好,有几种方法可以消除这个瓶颈:循环 DNS是DNS查找时返回多个IP时的解决方案。

举例来说,实际上就对应了四个IP地址。

负载平衡器是以一个特定IP地址进行侦听并将网络请求转发到集群服务器上的硬件设备。

一些大型的站点一般都会使用这种昂贵的高性能负载平衡器。

地理 DNS 根据用户所处的地理位置,通过把域名映射到多个不同的IP地址提高可扩展性。

这样不同的服务器不能够更新同步状态,但映射静态内容的话非常好。

Anycast是一个IP地址映射多个物理主机的路由技术。

美中不足,Anycast与TCP协议适应的不是很好,所以很少应用在那些方案中。

大多数DNS服务器使用Anycast来获得高效低延迟的DNS查找。

3. 浏览器给web服务器发送一个HTTP请求因为像Facebook主页这样的动态页面,打开后在浏览器缓存中很快甚至马上就会过期,毫无疑问他们不能从中读取。

所以,浏览器将把一下请求发送到Facebook所在的服务器:GET / HTTP/1.1Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...] User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...] Accept-Encoding: gzip, deflateConnection: Keep-AliveHost: Cookie: datr=1265876274-[...]; locale=en_US; lsd=WW[...]; c_user=2101[...] GET 这个请求定义了要读取的URL:“/”。

浏览器自身定义用户代理(User-Agent 头),和它希望接受什么类型的相应(Accept and Accept-Encoding 头). Connection头要求服务器为了后边的请求不要关闭TCP连接。

请求中也包含浏览器存储的该域名的cookies。

可能你已经知道,在不同页面请求当中,cookies是与跟踪一个网站状态相匹配的键值。

这样cookies会存储登录用户名,服务器分配的密码和一些用户设置等。

Cookies会以文本文档形式存储在客户机里,每次请求时发送给服务器。

用来看原始HTTP请求及其相应的工具很多。

作者比较喜欢使用fiddler,当然也有像FireBug这样其他的工具。

这些软件在网站优化时会帮上很大忙。

除了获取请求,还有一种是发送请求,它常在提交表单用到。

发送请求通过URL传递其参数(e.g.: /puzzle.aspx?id=85)。

发送请求在请求正文头之后发送其参数。

像“/”中的斜杠是至关重要的。

这种情况下,浏览器能安全的添加斜杠。

而像“/folderOrFile”这样的地址,因为浏览器不清楚folderOrFile到底是文件夹还是文件,所以不能自动添加斜杠。

这时,浏览器就不加斜杠直接访问地址,服务器会响应一个重定向,结果造成一次不必要的握手。

4. facebook服务的永久重定向响应图中所示为Facebook服务器发回给浏览器的响应:HTTP/1.1 301 Moved PermanentlyCache-Control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0Expires: Sat, 01 Jan 2000 00:00:00 GMTLocation: /P3P: CP="DSP LAW"Pragma: no-cacheSet-Cookie: made_write_conn=deleted; expires=Thu, 12-Feb-2009 05:09:50 GMT;path=/; domain=; httponlyContent-Type: text/html; charset=utf-8X-Cnection: closeDate: Fri, 12 Feb 2010 05:09:51 GMTContent-Length: 0服务器给浏览器响应一个301永久重定向响应,这样浏览器就会访问“/”而非“/”。

为什么服务器一定要重定向而不是直接发会用户想看的网页内容呢?这个问题有好多有意思的答案。

其中一个原因跟搜索引擎排名有关。

你看,如果一个页面有两个地址,就像/ 和/,搜索引擎会认为它们是两个网站,结果造成每一个的搜索链接都减少从而降低排名。

而搜索引擎知道301永久重定向是什么意思,这样就会把访问带www的和不带www的地址归到同一个网站排名下。

还有一个是用不同的地址会造成缓存友好性变差。

当一个页面有好几个名字时,它可能会在缓存里出现好几次。

5. 浏览器跟踪重定向地址现在,浏览器知道了“/”才是要访问的正确地址,所以它会发送另一个获取请求:GET / HTTP/1.1Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...] Accept-Language: en-USUser-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...] Accept-Encoding: gzip, deflateConnection: Keep-AliveCookie: lsd=XW[...]; c_user=21[...]; x-referer=[...]Host: 头信息以之前请求中的意义相同。

6. 服务器“处理”请求服务器接收到获取请求,然后处理并返回一个响应。

这表面上看起来是一个顺向的任务,但其实这中间发生了很多有意思的东西- 就像作者博客这样简单的网站,何况像facebook那样访问量大的网站呢!Web 服务器软件web服务器软件(像IIS和阿帕奇)接收到HTTP请求,然后确定执行什么请求处理来处理它。

请求处理就是一个能够读懂请求并且能生成HTML来进行响应的程序(像,PHP, RUBY...)。

举个最简单的例子,需求处理可以以映射网站地址结构的文件层次存储。

像/folder/page.aspx这个地址会映射/httpdocs/folder/page.aspx 这个文件。

web服务器软件可以设置成为地址人工的对应请求处理,这样page.aspx的发布地址就可以是/folder/page。

请求处理请求处理阅读请求及它的参数和cookies。

它会读取也可能更新一些数据,并讲数据存储在服务器上。

然后,需求处理会生成一个HTML响应。

所有动态网站都面临一个有意思的难点——如何存储数据。

小网站一半都会有一个SQL数据库来存储数据,存储大量数据和/或访问量大的网站不得不找一些办法把数据库分配到多台机器上。

解决方案有:sharding (基于主键值讲数据表分散到多个数据库中),复制,利用弱语义一致性的简化数据库。

委托工作给批处理是一个廉价保持数据更新的技术。

举例来讲,Fackbook得及时更新新闻feed,但数据支持下的“你可能认识的人”功能只需要每晚更新(作者猜测是这样的,改功能如何完善不得而知)。

批处理作业更新会导致一些不太重要的数据陈旧,但能使数据更新耕作更快更简洁。

7. 服务器发回一个HTML响应图中为服务器生成并返回的响应:HTTP/1.1 200 OKCache-Control: private, no-store, no-cache, must-revalidate, post-check=0,pre-check=0Expires: Sat, 01 Jan 2000 00:00:00 GMTP3P: CP="DSP LAW"Pragma: no-cacheContent-Encoding: gzipContent-Type: text/html; charset=utf-8X-Cnection: closeTransfer-Encoding: chunkedDate: Fri, 12 Feb 2010 09:05:55 GMT2b3Tn@[...]整个响应大小为35kB,其中大部分在整理后以blob类型传输。

内容编码头告诉浏览器整个响应体用gzip算法进行压缩。

解压blob块后,你可以看到如下期望的HTML:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="/1999/xhtml" xml:lang="en"lang="en" id="facebook" class=" no_js"><head><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><meta http-equiv="Content-language" content="en" />...关于压缩,头信息说明了是否缓存这个页面,如果缓存的话如何去做,有什么cookies要去设置(前面这个响应里没有这点)和隐私信息等等。

相关文档
最新文档