-
浏览器查看本地缓存(cookie),如果请求资源在本地缓存中,直接将资源提供给客户端,否则进行查找
-
浏览器解析URL获取协议、主机、端口等信息,更具域名获取主机IP(DNS解析)
-
找网关MAC,将目的MAC改为网关MAC发送到网关
-
根据目的IP判断和源IP是否在同一网段(根据子网掩码计算),在同一网段根据ARP协议找到MAC地址,否则进行第五部
-
网关将数据发送到公网(根据NAPT协议将局域网IP映射为公网IP),将源IP和MAC改为公网IP,目的MAC改为最近的MAC
-
根据公网发送的目的MAC在网络上多次跳转找到目的IP和目的MAC
-
进行TCP三次握手建立连接,过程如下:
① 客户端发送SYN给服务端要求建立客户端到服务端的连接
② 服务端收到后确认建立客户端到服务端的连接发送ACK,并发送SYN给客户端要求建立服务段到客户端的连接
③ 客户端收到服务端的建立消息后,发送ACK给服务段告诉服务段自己也确认了从服务端到客户端的连接 -
通过TCP连接先服务器发送HTTP请求
-
服务端根据请求头解析请求信息,通过请求对应的URL确定服务资源
-
更具服务资源返回对应的想应内容给客户端
-
浏览器收到资源后判断是否要断开连接(TCP四次挥手)过程如下:
① 浏览器发送FIN到服务端请求关闭连接
② 服务端收到消息后发送ACK给浏览器告诉浏览器确认关闭浏览器到服务端的连接
③ 服务端发送FIN到客户端情趣关闭服务段到客户端的连接
④ 客户端发送ACK到服务段告诉服务端确认关闭服务段到客户端的连接
为啥要四次挥手,三次挥手不行吗?
因为客户端发送关闭连接的请求后,服务端的有些资源可能没有全部发送到客户端,直接关闭会导致资源丢失,所以要等一会在关闭 -
浏览器解析客户端的响应。