一个页面从输入URL 到页面加载显示完成,这个过程中都发生了什么?

1、当发送一个URL请求时,浏览器会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询,解析获取网址的IP地址;
2、浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCP/IP连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文;
3、一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTP的GET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态表示一个正确的响应;此时,Web服务器提供资源服务,客户端开始下载资源,同时使用缓存;
4、文档树建立,根据标记请求所需指定MIME类型的文件(比如css、js),同时设置了cookie;
5、页面开始渲染dom,js根据dom api操作dom,执行事件绑定等,页面显示完成。(详细)

1、浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求;
2、服务器交给后台处理完成后返回数据,浏览器接收文件(HTML、JS、CSS、图象等);
3、浏览器对加载到的资源(HTML、JS、CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM);
4、载入解析到的资源文件,渲染页面,完成。(简洁)

DNS的工作原理及过程分下面几个步骤:
第1步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第2步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
第3步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第4步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第5步:重复第四步,直到找到正确的纪录。
第6步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

转载于:https://www.cnblogs.com/camille666/p/three_hshake.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值