在浏览器输入URL后,执行的全部过程


整个流程如下:
1.域名解析
2. 发起TCP的3次握手
3. 建立TCP连接后发起http请求
4. 服务器响应http请求
5. 浏览器解析html代码,并请求html代码中的资源(如js,css,图片等)
6. 断开TCP连接
7. 浏览器对页面进行渲染呈现给用户

域名解析

1.浏览器查询自己的DNS缓存
2.本地操作系统的DNS缓存
3.操作系统的hosts文件(一张维护域名与IP地址的对应表)
4.本地域名服务器
4.1 根域名服务器,返回顶级域名服务器的地址
4.2 顶级域名服务器,返回权限服务器的地址
4.3 权限域名服务器,返回对应的IP地址
5.本地域名服务器拿到了IP地址,返回给操作系统,并将其缓存
6.操作系统将IP返回给浏览器,并将其缓存
7.浏览器拿到对应的IP,并将其缓存

发起TCP的3次握手

谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。

三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

第一次握手:客户端发送syn报文,并置发送序号为X
第二次握手:服务端发送syn+ack报文,并置发送序号为Y,再确认序号为X+1
第三次握手:客户庙发送ack报文,并置发送序号为Z,再确认序号为Y+1

在这里插入图片描述

建立TCP连接后发起http请求

客户端向服务器发送请求报文

服务器响应http请求

服务器收到请求报文,并向客户端发送响应报文

浏览器解析html代码,并请求html代码中的资源(如js,css,图片等)

浏览器接收响应报文,并根据html中的资源下载对应的js,css,图片等资源。

断开TCP连接

通过四次挥手,断开TCP连接
四次挥手:
1.主动方发起断开连接的请求
2.被动方响应,告知已经收到断开连接的请求,等数据发送完毕就断开连接
3.被动方告知主动言,数据已经发送完毕,可以断开连接了
4.收到,断开连接

浏览器对页面进行渲染呈现给用户

浏览器通过引擎将页面渲染出来,呈现给用户

参考资源:
http://www.cnblogs.com/zmlctt/p/3690998.html
https://blog.csdn.net/qq_21993785/article/details/81188253

猜你喜欢

转载自blog.csdn.net/qq_29055201/article/details/84764995