- DNS解析
DNS解析的过程就是寻找哪台机器上有你需要资源的过程.
从一个网址到IP地址的转换,这个过程就是DNS解析 - TCP连接
浏览器根据 IP 地址向服务器发起 TCP 连接,客户端和服务端之间都要进行三次对话才开始正式传输内容,三次对话大概:
客户端:我要连接你了,可以吗?
服务端:嗯,我准备好了,连接我吧。
客户端:那我连接你了。
开始后面步骤 - 发送HTTP请求
HTTP请求报文是由三部分组成: 请求行, 请求报头和请求正文。 - 服务器处理请求并返回HTTP报文
HTTP响应报文也是由三部分组成: 状态码, 响应报头和响应报文。 - 浏览器解析渲染页面
浏览器是一个边解析边渲染的过程。首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。 - 连接结束
四次挥手
主机向服务器发送一个断开连接的请求(不早了,我该走了);
服务器接到请求后发送确认收到请求的信号(知道了);
服务器向主机发送断开通知(我也该走了);
主机接到断开通知后断开连接并反馈一个确认信号(嗯,好的),服务器收到确认信号后断开连接;
ps:
为什么服务器在接到断开请求时不立即同意断开:当服务器收到断开连接的请求时,可能仍然有数据未发送完毕,所有服务器先发送确认信号,等所有数据发送完毕后再同意断开。
第四次握手后,主机发送确认信号后并没有立即断开连接,而是等待了 2 个报文传送周期,原因是:如果第四次握手的确认信息丢失,服务器将会重新发送第三次握手的断开连接的信号,而服务器发觉丢包与重新发送的断开连接到达主机的时间正好为 2 个报文传输周期。