zoukankan      html  css  js  c++  java
  • 了解DNS缓存相关知识

    DNS 全称 Domain Name System 域名解析系统

    浏览器 <=========> DNS缓存 + DNS服务器

    DNS解析过程文字性解读:

    1. 在浏览器地址栏输入URL后回车,首先识别URL中协议,域名,文件路径,端口等信息。
    2. 查找本地hosts文件,如果有这个网址映射关系,则完成解析
    3. 询问本地DNS解析器缓存,有则完成解析
    4. 查找TCP/IP参数中设置的首选DNS服务器,称之为本地DNS服务器。此服务器收到查询时,如果在在其本地配置区域资源中找到要查询的域名,则完成解析,此解析具有权威性
    5. 如果要查询的域名不在本地DNS服务器本地配置资源中,但其缓存了该映射关系,则也完成解析,但此解析不具有权威性
    6. 如果以上方法都失效,由本地服务器进行迭代查询,先向根域名DNS服务器发出请求,再查二级域,三级域,直到查询到要解析的地址或名字为止,本地DNS服务器收到应答后,先在缓存中存储,然后将解析结果返回客户机。
    7. 没有找到则返回错误。
    

    小故事总结:

    • 当你(浏览器)来西安旅游不知道大雁塔怎么走,需要问路,张大爷会拿着西安地图(DNS服务器)查一下,(DNS查询)告诉你坐地铁4号线可以直达.
    • 几天当你的同学(浏览器)也来西安旅游再问大雁塔怎么走,张大爷会自然告诉你同学,坐4号线就可以.(这个时候张大爷脑海里就会有DNS缓存).
    • 再过一个月你再来西安旅游,再问张大爷的时候,他就又需要从服务器查询(DNS缓存时间过期)

    前端开发在DNS上的优化

    DNS Prefetch 是一种DNS 预解析技术,当你浏览网页时,浏览器会在加载网页时对网页中的域名进行解析缓存,这样在你单击当前网页中的连接时就无需进行DNS 的解析,减少用户等待时间,提高用户体验。
    我们DNS 解析的时候,需要用域名去DNS 解析匹配 IP ,这个是需要时间的,如果加了 dns-perfetch 呢,浏览器会记住(缓存)这个解析,直接就请求过去了,不需要再走DNS 解析。

     <meta http-equiv="x-dns-prefetch-control" content="on">
     <link rel="dns-prefetch" href="//www.zhix.net">
     <link rel="dns-prefetch" href="//api.share.zhix.net">
     <link rel="dns-prefetch" href="//bdimg.share.zhix.net">
    
  • 相关阅读:
    Luogu P4727 [HNOI2009]图的同构记数
    ARC 101 E
    JSOI2019 Round2 游记
    JSOI2019 Round1(十二省联考)游记
    Technocup 2019
    Codeforces Round #533 (Div. 2)比赛总结
    学习链接
    2018.12.29-2018.1.9安师大附中集训
    关于考试
    NOIP2018提高组 游记
  • 原文地址:https://www.cnblogs.com/Lewiskycc/p/12411579.html
Copyright © 2011-2022 走看看