输入URL+ENTER之后,页面加载行为(DNS解析)

本文深入探讨DNS解析过程,包括浏览器、系统、路由器及网络供应商的缓存机制,解析DNS如何从根服务器到二级域查找IP,以及DNS负载均衡技术在CDN中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识储备:

I.DNS缓存存在于哪里?

a. 浏览器DNS缓存(chrom默认缓存60S)

b. 操作系统缓存(windows下etc/lmhosts, linix下dns/...cathe)

c. host文件

d. 路由器缓存

e. 网络供应商DNS缓存(移动、网通、电信...,又叫本地DNS服务器)

f. 根域名服务器DNS缓存(根域名服务器: 用来管理互联网的主目录,全世界只有13台)

II.客户端缓存

a. 强缓存与协商缓存

b.强缓存判断是否可用的条件cache-control、expires

c.协商缓存判断是否可用的条件e-tag、last-modify

III.事件队列与JS事件循环

IV.域的划分

www.baidu.com.(最后有个‘.’, 代表根服务器)

    .com  一级域

     baidu  二级域

     www  服务器名或主机名

     www.baidu.com   URL

VI. DNS解析: 将主机名与域名转化为IP的过程

过程: 

1. URL+enter

2. DNS解析 :

a. 浏览器依次查看浏览器、系统、host、路由器DNS缓存,如果在这中间任何一个环节中发现有此地址的缓存,直接返回IP,浏览器查看本地强缓存是否过期,若不过期,返回文件。缓存过期,则建立链接,发送请求拉取资源

b. 若第2步未发现缓存中存在地址与IP的对应关系,则浏览器向本地DNS服务器(电信、移动)发送DNS请求,本地DNS服务器发现有缓存记录,返回IP(这个返回成为非权威服务器应答)。之后浏览器根据IP与缓存的对应关系,查看本地强缓存是否过期,若不过期,返回文件。缓存过期,则建立链接,发送请求拉取资源

c. 如果第三步也没有成功解析,则本地DNS服务器会向根服务器发送请求,根服务器告知本地DNS服务器去一级域服务器下查找。

d. 紧接第4步,本地服务器向一级域对应服务器发送请求,一级域服务器告知本地DNS服务器向二级域发送请求查询

e. 本地DNS服务器再向二级域下服务器发送请求(baidu.com)

f. 域名服务器返回域名与IP的对应关系

g. 本地DNS服务器拿到解析结果返回给浏览器并缓存(这种缓存也是优化加载速度的一种)

h. 浏览器查看本地强缓存是否过期,若不过期,返回文件。缓存过期,则建立链接,发送请求拉取资源

由此可见,DNS解析是一个复杂的过程,如果亿万请求都位于同一个机器,就会出现负载量过大的问题。解决方法为DNS负载均衡技术: 在DNS服务器中为同一台主机分配多个IP地址,在应答DNS查询时,将客户端的访问引导到不同的机器上去,从而达到负载均衡的目的。应用实例: CDN

3.DNS解析完成之后,与服务端进行TCP链接

4.发送请求

5.服务器解析请求

6.浏览器接受数据,并断开链接

7.渲染标签、CSS,每一个路径都会重新发起一次请求(每一个请求都是一个HTTP请求,都要经历上述步骤)

8.进行JS中的异步事件。ajax或者事件绑定等https://blog.youkuaiyun.com/qq_41206257/article/details/84102383

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值