对于有缓存的页面,打开时浏览器会去查 DNS 吗

2019-12-08 10:35:43 +08:00
 niming007zh

对于首页有缓存的网站,max-age 设了很大,打开它时浏览器还会去查 DNS 吗?

到底是哪一种情况呢?

1.打开缓存页面,同时 查 DNS->建立 HTTPS 连接

2.打开缓存页面,在点击新链接时再去 查 DNS->建立 HTTPS 连接

3.还是说会先查 DNS 什么的呢?

3807 次点击
所在节点    浏览器
14 条回复
whi147
2019-12-08 11:53:12 +08:00
不会,有缓存的断网都能打开
whi147
2019-12-08 11:55:19 +08:00
dns 的缓存只是记录域名与 ip,只有域名发生变化才查 dns
niming007zh
2019-12-08 12:16:55 +08:00
@whi147
奥,那再请教一下,如果首页有缓存,子页没缓存,那 dns 查询是在打开首页后偷偷在后台进行,还是直到我点击子页链接才查的呢(虽然这可能跟浏览器自身优化有关)。

我主要是 dns 服务器是国外的,怕影响速度。。。就想搞清楚
otakustay
2019-12-08 12:42:00 +08:00
@niming007zh 点子页,除非你搞<link rel="dns-prefetch" href="//xxx.com/" />
also24
2019-12-08 12:46:58 +08:00
DNS 缓存是 DNS 缓存
页面缓存是页面缓存

完全不同的两件事儿

其中 DNS 缓存涉及到:
浏览器内部缓存
操作系统内部缓存
配置的 DNS 服务器内部缓存
配置的 DNS 服务器上游的 DNS 迭代服务器内部缓存
DNS 权威服务器 TTL 配置
also24
2019-12-08 12:49:26 +08:00
除非你的网站访问量极少,否则大部分用户其实在 DNS 迭代服务器这一步,已经查询到被缓存的记录了。

只有极少数域名,以及一些非常小众的后缀,才会涉及到需要找权威解析查询的情况,这时候才会产生速度方面的影响。
also24
2019-12-08 12:54:05 +08:00
“凤河博客” 是我知道的人里,少有的死磕 DNS 的大佬,他有一份关于 DNS 体系的入门文档,建议可以仔细看一下。

http://blog.dnsbed.com/?p=302
also24
2019-12-08 12:54:47 +08:00
尴尬,错别字,应该是 “风河博客”
niming007zh
2019-12-08 12:55:58 +08:00
@otakustay
还有这种操作啊,学习了!
also24
2019-12-08 12:58:31 +08:00
继续尴尬…… 把 “递归解析” 搞成 “迭代解析” 了

实际上 “权威解析” 的过程才是 “迭代解析”
tomczhen
2019-12-08 12:59:09 +08:00
DNS 缓存这块在 RFC 上可以查看到推荐做法,应用缓存,系统缓存,网关( DNS 服务器)缓存都是存在的,TTL 下发也有滞后,而且国内还多一个 DNS 劫持问题。

应用能控制的,有应用自身缓存,Web 这块应该从浏览器 API,HTML 这方面去查 DNS 相关的资料,其他上游缓存已经是范围之外了。
niming007zh
2019-12-08 12:59:53 +08:00
@also24
多谢!我去学习学习这个博客。dns 的原理我大概了解,就是因为我的网站不算大,然后 dns 是 aws 的,首次 dns 解析时间都挺长,如果不同地域的人访问可能地区 dns 得分别查询。比较好奇一般一个市有多少 dns 服务器?
liuzhiyong
2019-12-08 16:00:28 +08:00
你 F12 看 Network 就知道了呀。
jugelizi
2019-12-08 16:37:21 +08:00
这个你应该考虑 CDN 解析了吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/626936

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX