科普:网页打开的过程中经历了什么?

文适用于编程初学者或者对网页打开的过程感兴趣的朋友来阅读,本文希望以大家都能读懂的方式去描述网页打开的过程,其中每一个环节展开来讲都能单独成一篇长文,希望以后有机会再与大家探讨。

现代人。

早上一睁眼,先看一眼手机……

上班路上看了一路手机……

吃饭依然在看手机……

上厕所坐马桶上依然在看手机,要是忘了带手机,提上裤子出去拿了手机回来继续……

晚上睡觉前还在看手机……

曾经衣食住行是我们生活的必须条件,当进社会,我们生活的必要条件变成衣食住行网,网络已经成为我们生活必不可少的一部分。

今天宅哥带大家看下一个网页打开的过程,看看这个新的生活必需品是怎么送到我们眼前的。


DNS解析

打开浏览器,在地址来输入一个网址,或者鼠标点击一个链接,这时候就是给浏览器给了一个命令,意思是我要看这个链接的页面。

浏览器接收我们的指令,它需要找到这个网址对应的页面地址然后显示出来给我们看。浏览器分析网址,获得网址中的域名,然后找到域名对应的ip地址,这个过程实际上就是将域名翻译成IP地址,我们称作DNS解析。DNS解析具体过程如下:

1) 浏览器首先搜索浏览器自身缓存的DNS记录。

2) 如果找到,则搜索hosts文件和操作系统缓存。

3) 如果还没找到,则向域名解析服务器发送解析请求。

只要是正常解析的域名,一般来说都能在域名服务器中获得其对应的IP地址。

客户端(浏览器)发起TCP连接

当获得服务器ip,我们的客户端开始发送TCP求尝试与服务器监理连接,这个过程就像是我们要跟某人打电话,先拨通电话号码,等待对方接通电话,然后我们互相看到电话接通就可以说话了。

TCP是一种网络传输协议,其连接过程如下:

1)客户端向服务器端发送连接请求的报文(拨号);

2)服务器端收到请求后,同意建立连接,向客户端发送确认报文(对方点击接通电话按钮);

3)客户端收到服务器端的确认报文后,再次向服务器端发出报文,确认已收到确认报文(双方都看电话已接通)。

至此,浏览器与服务器已经建立了TCP连接,开始进行通信。

发送http请求

建立TCP连接后,就可以发送http请求了。http请求协议是构建在TCP/IP协议之上的一个应用。其中包含了要从服务器获得的资源的信息。

http协议是超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础HTTP协议是建立在tcp协议之上的一种应用,是tcp协议的一个子集。

类似于电话接通之后就可以跟朋友说话了,你可以在电话里中跟朋友说一件事,也可以说几件事。同理,tcp连接之后,在同一个tcp连接中,可以发送多个http请求。

服务器返回资源

服务器根据http请求中的请求网址,找到网址对应的内容,并将请求的资源发送给浏览器。


上面说到一次tcp链接可以发送多个http请求,服务器会按照每个请求依次找到对应的资源,返回给服务器。

浏览器渲染

1) 浏览器根据页面内容,生成DOM Tree。根据CSS内容,生成CSS Rule Tree(规则树)。调用JS执行引擎执行JS代码。

2) 根据DOM Tree和CSS Rule Tree生成Render Tree(呈现树)

3) 根据Render Tree渲染网页

最终浏览器渲获得服务器返回的资源生成呈现在我们面前的页面。

​全文结束,欢迎大家参与留言讨论,在讨论中思考,在思考中将知识装进脑海。
发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();