网络协议 17 - HTTPDNS
全球统一的 DNS 是很权威,但是我们都知道“适合自己的,才是最好的”。很多时候,标准统一化的 DNS 并不能满足我们定制的需求,这个时候就需要 HTTPDNS 了。 上一节我们知道了 DNS 可以根据名称查地址,也可以针对多个地址做负载均衡。然而,我们信任的地址簿也会存在指错路的情况。明明离你 500 米就有个吃饭的地方,非要把你推荐到 5 公里外。为什么会出现这样的情况呢? 还记得吗?由我们发出请求解析 DNS 的时候,首先会连接到运营商本地的 DNS 服务器,由这个服务器帮我们去整棵 “DNS 树” 上进行解析,然后将解析的结果返回给客户端。但是本地的 DNS 服务器,作为一个本地导游,往往会有自己的“小心思”。 传统 DNS 存在的问题 1)域名缓存问题 它可以在本地做一个缓存。也就是说,不是每一个请求,它都会去访问权威 DNS 服务器,而是把访问过一次的结果缓存到本地,当其他人来问的时候,直接返回缓存的内容。 这就相当于导游去过一个饭店,自己记住了地址,当有一个游客问的时候,他就凭记忆回答了,不用再去查地址簿。这样会存在一个问题,游客问的那个饭店如果已经搬走了,然而因为导游没有刷新“记忆缓存”,导致游客白跑一趟。 另外,有的运营商会把一些静态页面,缓存到本运营商的服务器内, 这样用户请求的时候,就不用跨运营商进行访问,既加快了速度