美文网首页
浏览器输入 url 和点击页面链接过程

浏览器输入 url 和点击页面链接过程

作者: lucky_果果 | 来源:发表于2019-12-03 14:12 被阅读0次

    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加入缓存响应用户。

    相关文章

      网友评论

          本文标题:浏览器输入 url 和点击页面链接过程

          本文链接:https://www.haomeiwen.com/subject/mbscgctx.html