简述DNS的基本工作原理,dns的工作原理是什么

2020-12-16 101阅读 普晴照整理

内容简介:事实上,整个WPO在浏览器加载和解析过程中对一些消费行为进行了DNS优化的原理和方法优化,在整个浏览器工作过程中,加载和解析是相互作用的。本文讨论的是...

而整个WPO其实是对浏览器(browser)的加载(load)和解析(parse)过程中的一些消耗行为进行优化, 而load和parse在整个浏览器工作过程中又互相纠结互相作用.

在这篇文字中讨论的更多是FE们能够伸手处理或者通过达成共识的方法来进行快速推动Tech们协助的一些事情.

OK, 我们慢慢把浏览器的工作过程掰细了看吧.

首先, 我们先整一个浏览器如何找到一个网站的简易工作原理 – DNS查询:

首先当用户在浏览器的地址栏中敲入了网站的网址 ( 比如: alibaba.com ) ,这时浏览器会首先通过访问的域名来定位到IP (DNS) 从而找到去哪里获取资源, 这时, 浏览器会依次进行如下查找:

1. 浏览器缓存 :

浏览器首先会在自己的缓存中查找有没有对应的域名 – IP匹配, 如果好运的话, 这里就可以直接尝试去访问资源了, 如果运气平平则往下走吧.

2. 系统缓存 :

浏览器缓存中没有命中, 浏览器会告诉操作系统:”嘿, 我在我自己口袋里没找到, 可能丢了, 我得去你那看看”, 然后, 一个系统进程(?)调取系统中的DNS缓存进行查询, 重复上一条的运气判断…

3. 路由器缓存 :

走到这, 运气还真不太好啊, 操作系统也没辙了, 那怎么办呢, 向路由去要要看吧… 重复运气判断…

4. ISP DNS缓存 :

好吧, 真不知道说运气好还是运气不好了, 不废话, 去ISP (网络提供商) 的DNS缓存服务器中寻找了, 一般情况下, 在ISP端的缓存中都能找到相应的缓存记录了, 不该这么背了, 或者… 您的ISP有够菜…

5. 递归搜索…

最无奈的情况发生了, 在前面都没有办法命中的DNS缓存的情况下, ISP的DNS服务器开始从root域名服务器开始进行递归, 顺序是从.com顶级域名服务器到alibaba的域名服务器, 再没找到…好吧, 您认为您要去的网站真的公开存在么…?

要强调的是, 不只是对网站第一次的域名访问需要做这样一次查询工作, 在对页面中的资源引用的域名解析时一样会有这样的一系列工作. 最明显的就是启用全新域名来做静态资源存储服务时, 基本上上述的1 – 5个步骤都得走上几遍. 才能让新域名在各DNS缓存服务器上留下记录.

在这个话题上, 关于DNS的类似系统级的解决方案不是FE能够控制得了的, 我们q可以在涉及到DNS时有些小Tips来从中做些事情.

好吧, 第一项.DNS相关的优化:

常规实践 : DNS解析的复杂性决定了不当的使用多域名获取资源会造成不必要的性能开销. 在WPO中, 很多优化工作是很艺术的, 在DNS和HTTP这两方面优化是就可以看到这个神奇的艺术性:

DNS的优化, 当然是尽可能少的造成DNS查询开销, 而在HTTP优化的策略中有一项优化措施是避免单域名下连接数的缺陷来进行资源多通道下载, 实施的细节会在 中详细介绍, 在这里只是简单的提一下, 静态资源多域名服务可以绕过浏览器单域名载入资源时并行连接数的限制, DNS优化需要我们尽可能少的域名解析, HTTP优化时需要我们适当的使用多域名服务, 那怎么样让两个优化实践都能够比较好的实施呢? [todo]

优雅降级 : 在某些现代浏览器 ( Google Chrome, Firefox 3.5 ) 中, 已经能够支持DNS的预取了, 怎么个预取呢? 就是在浏览器加载网页时, 对网页中的或者的href属性中的域名进行后台的预解析(上文中的 1- 5步), 并且将解析结果缓存在浏览器端, 当用户在真正点击链接时, 省去在当下的DNS解析消耗, 把这个消耗过程转嫁到用户无法感知的浏览过程中去.

第一, 现代浏览器已经支持且默认打开了DNS Prefetch的功能. 当然也可以通过浏览器的配置来管理该功能:

用Firefox3.5 可以这样: 浏览器默认就打开了HTTP协议下的DNS预取功能, 默认关闭HTTPS协议下的DNS预取功能, 可通过 about:config 的 network.dns.disablePrefetch 和network.dns.disablePrefetchFromHTTPS 两个选项来控制两种协议下的预取功能.

Chrome管理DNS Prefetch方法暂时缺少.

第二, 可以通过用meta信息来告知浏览器, 我这页面要做DNS预取:

第三,可以使用link标签来强制对DNS做预取:

[todo DEMO]

作者给您推荐的内容
  1. 如何用excel制作柱形图?第一步是在Excel中输入数据。第二步是选择制作图excel怎么制作柱形图?excel柱形图制作教程表所需的数据,然后单击“插入”。第三步是单击柱形图。有几种柱状图可供选择...

  2. 刻录光盘的时候,加密其实就是保护刻录光盘时如何加密?你的隐私!具体操作如下:小编以光盘加密主机为例,刻录加密光盘,用户用它加密ISO镜像文件,然后用Nero工具加密加密加密后的光盘...

  3. 最简单的重放方法是使用etcrc.本地添加SBIN ADSlinux最简单的ADSL断线重拨L connect dev null,这相当于SBIN ADSL connect dev null21...

  4. 随着数据时代的爆发,我移动硬盘分区方法分享,分区导致数据丢失该如何恢复?们需要存储越来越多的数据,因此移动存储产品已经成为我们生活中不可缺少的一部分。但是我们现在买回来的移动硬...

  5. “美优怀孕”是一个帮助准父母度过怀孕期的应用程序美柚孕期怎么添加收货地址?。美佑育儿不仅可以分享带宝宝的经验,还可以购买宝宝和孕妇使用的产品。既然他们可以买东西,你怎么加收货...

  6. 如何用提克托克回答?Tiktok app是一款流行的Tiktok拍摄软件。用户会在抖动上发布自己的作品。有网友会据此发表评论。抖音怎么回复评论?抖音app里回复别人评论的方法介绍我们如何回应这些评论?...

  7. 无需等待去看广告,精彩瞬间就会呈现。可以删除的广告包括PC客户端:在线视频播放关闭广告关闭文本链广告关闭本地视频播放关闭广告右下角关闭视频播放前关闭广告PC网站:视频前删除广告,...

  8. 1阿里旺旺的名字怎么改?您可以按照以下方法更新信息:在阿里旺旺主窗口点击您的图片,在弹出窗口中修改您的个人信息,如姓名、性别、职业等,阿里旺旺基本使用技巧然后点击确定按钮:阿...

  9. 随着微信内如何设置使得对方可以收到好友添加请求科技的发展,微信已经成为人们日常生活中不可缺少的工具。当我们使用移动微信时,如果添加对方为好友时,对方无法收到加友请求,如何设...

  10. 1分享与互助;2。尊重音乐家的相关权益。宽容和理性对待不同的观虾米音乐指导原则点、偏好和意见。尊重他人隐私和个人空间。...