1、浏览器输如127.23.3过程:
注释:IP地址,重点考察TCP的链接,不考察域名和解析。
首先简建立TCP链接,使用三次握手建立与web服务器的连接,经过SYN、SYN/ACK、ACK的三个包之后,浏览器和服务器建立连接。
有了TCP连接的通道后,http协议就可以工作了。于是浏览器按照http的规定的的规则,通过TCP发送一个“GET/HTTP/1.1”的请求报文,也就是第四个包
随后web服务器回复第五个包,在TCP协议层面确认:“刚才的报文我收到了。”
服务器收到报文后在内部就要处理这个报文,同样也是依据http协议的规定,解析报文,看看浏览器究竟想干什么。看到原来浏览器想获取根目录的文件,好吧,从磁盘读取那个文件,拼成http格式的报文,发回去。这就是第六个包,“HTTP/1.1 200 OK”,底层还是TCP。
同样浏览器收到后,也要给服务器回复一个TCP的ACK确认,“你的响应报文我收到了,多谢”,这就是第七个包。 此时浏览器收到数据后,就开始解析报文,一看服务器给我的是HTML文件,就开始调用浏览器的排版引擎和javascript引擎等处理。最终页面出现。
着之后还有两个来回,四个包。这是浏览器自动请求了作为网站图标的“favicon.ico”的文件。
注意:TCP关闭连接还有四次挥手,因为HTTP/1.1是长连接,默认不立即关闭。
2、浏览器中点击页面的链接过程:
浏览器缓存 - 系统缓存 - host文件,还是没有找到,
则请求DNS服务器获取IP解析(解析失败的额浏览器尝试其他的DNS服务器,最终失败的进入错误页面)
也可能获取到CDN服务器的IP地址,访问CND时先看是否缓存了,缓存了则响应用户,无法缓存或者缓存失效或者无效缓存,回到源服务器
经过防火墙外网网管路由到nginx接入层,ngix缓存中存在则直接返回
不存在则负载到web服务器,web服务器接收到请求后处理,路径不存在返回404,存在则返回结果。原路返回,CDN加入缓存响应用户。
网友评论