在浏览器里点击页面链接后发生了哪些事情

        如果域名不是ip,需要走域名解析成ip的逻辑,优先级顺序为:

        1 浏览器缓存 > 2 系统缓存 > 3 本地hosts> 4 根域名 > 5 顶级dns服务器(如 com) > 6 二级dns服务器(baidu.com) > 7 三级dns服务器(www.baidu.com)

        如果客户端指向的dns服务器为非官方的如 8.8.8.8,那在第4步之前可能还有一层cache,当然最后解析的ip有可能是cdn的,如果cdn失效了就直接穿透到源ip,当然这个服务器这一部分可能做了四层负载均衡的设置,所以有可能每次获取的服务器ip都不一祥,也有可能到了服务器nginx层做了七层转发,所以虽然获得的ip一样,但是内部可能转发给了很多内网服务器.

        如果链接地址是域名开头的,浏览器会开始DNS解析动作。解析优先级依次为:

        浏览器缓存 > 操作系统缓存 > 本机hosts文件 > “野生DNS服务器” >核心DNS服务器( 根级DNS > 顶级DNS > 权威DNS) ;

        将域名解析为正确的ip地址之后,通过三次握手与服务器建立tcp/ip连接;浏览器发送请求报文,服务器接收并处理请求,返回响应报文,浏览器开始解析html文档,在这过程中又会发起一些http请求,进行图片、css、js等静态资源的获取,以及ajax请求获取json数据。同时,浏览器相关引擎开始绘制dom视图,执行js脚本,完成页面的初始化直到所有代码执行完毕。

        注:本地缓存hosts一般是指本机域名解析文件hosts

        “C:\WINDOWS\system32\drivers\etc\hosts”

        故本地DNS解析可以理解为就是查找系统里面的hosts文件的对应关系。

       此外, hosts文件相当于是一个简易的dns解析器(KV格式),而操作系统缓存则是在内存里,访问缓存要比访问磁盘快的多。所以解析dns都要先找缓存,没有才去访问解析器(hosts、dns服务器等)。

        注:dns请求时使用专门的dns协议,使用udp发送,因为是通过udp所以不需要建立连接。

        在dns解析失败时,由于根本没有进入http处理流程,所以不会有4xx之类的错误,而是dns解析错误信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值