从前端的角度出发,主要包括以下几个方面:
- 浏览器的地址栏输入URL并按下回车。
- 浏览器查找当前URL是否存在缓存,并比较缓存是否过期。
- 通过 DNS(域名解析系统)将 URL 解析为对应的 IP 地址。
- 然后与这个 IP 地址确定的那台服务器建立起 TCP 网络连接(三次握手)。
- 随后我们向服务端抛出我们的 HTTP 请求。
- 服务端处理完我们的请求之后,把目标数据放在 HTTP 响应里返回给客户端。
- 拿到响应数据的浏览器就可以开始走一个渲染的流程。渲染完毕,页面便呈现给了用户,并时刻等待响应用户的操作。
- 关闭TCP连接(四次挥手)。
三次握手简单说明
所谓三次握手(Three-Way Handshake)即建立TCP连接,是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。
- 1.客户端–发送带有SYN标志的数据包–一次握手–服务端(客户端:我要连接你了,可以吗?)
- 2.服务端–发送带有SYN/ACK标志的数据包–二次握手–客户端(服务端:嗯,我准备好了,连接我吧。)
- 3.客户端–发送带有带有ACK标志的数据包–三次握手–服务端(客户端:那我连接你咯。)
四次挥手简单说明
- 客户端-发送一个FIN,用来关闭客户端到服务器的数据传送(客户端向服务器发送一个断开连接的请求)
- 服务器-收到这个FIN,它发回一个ACK,确认序号为收到的序号加1 。和SYN一样,一个FIN将占用一个序号(服务器接到请求后发送确认收到请求的信号)
- 服务器-关闭与客户端的连接,发送一个FIN给客户端(服务器向主机发送断开通知)
- 客户端-发回ACK报文确认,并将确认序号设置为收到序号加1