从URL到网页,中间经历了什么?

2017-09-27  本文已影响288人  _于易

前言

当用户在浏览器的地址栏输入一个链接,比如www.baidu.com之后,按下回车键,页面就会加载出来。貌似很容易,但是这背后的工作原理其实没有看上去那么简单,大致可以分成以下几个步骤。

1.浏览器识别URL

什么是URL?
url即统一资源定位器,基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名。格式可以分成两部分。

http 超文本传输协议资源
https 用安全套接字层传送的超文本传输协议
ftp 文件传输协议
mailto 电子邮件地址
ldap 轻型目录访问协议
file 当地电脑或网上分享的文件
news Usenet新闻组
gopher Gopher协议
telnet Telnet协议

2. DNS系统完成域名查询

IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

3.浏览器和服务器之间建立TCP连接

TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

利用TCP/IP通信时,是通过分层顺序和对方通信的。发送端从应用层往链路层,接收端从链路层往应用层。

4.浏览器发出请求

建立连接后,浏览器会发送一个HTTP请求,HTTP请求包含的信息可以分成如下三部分:

这时,我们在回过头来看在TCP协议上发送HTTP请求的过程,即:

5. 服务器响应请求,将数据传输给浏览器

事实上,在进入服务器之前,可能还会先经过负责负载均衡的机器,其目的为将请求合理地分配到多个服务器上,在经过了负载均衡后,请求真正地到了服务器的Web Server,比如 Apache,Node.JS等。
服务器收到客户请求之后,进行了处理,需要把结果返回,也就是返回一个HTTP响应。HTTP响应与HTTP请求类似,也包含三个部分,在此不再赘述。

6. TCP连接释放

7. 浏览器进行页面的加载

这个过程即浏览器显示HTML的过程。



渲染引擎一边解析HTML,一边将标签用来构建DOM树。当他解析到CSS文件或<style>时,它又会开始解析这些样式,渲染引擎并不是全部解析完HTML,再构建DOM树,构建和布局Render树的,这些都是逐步完成的。解析一部分,就显示一部分,带来更好的用户体验。
当解析到需要获取其他地址的标签如<img>时,浏览器又会发起一个HTTP请求,进行之前提到过的DNS查询等等一系列操作。但是对于这种静态文件,很可能在浏览器缓存中就有,不需要和服务器进行交互。完成渲染之后,页面也就这样展现在用户面前了。

上一篇下一篇

猜你喜欢

热点阅读