一、简单理解

DNS服务器里存着一张表,表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一

浏览器访问某个域名,实际上是访问它的ip地址

所以浏览器需要知道域名对应的ip地址,由此产生dns解析查询流程。

二、以实例来理解

1、以客户端浏览器访问 www.rootkit.org 域名为例,

首先,它会去检查当前浏览器缓存是否有对应IP,如果有,就直接响应,如果没有,就继续往下找。

2、接着,操作系统会去检查自己的hosts文件,如果从中没找到对应关系,会再到系统dns缓存中查,如果缓存中有,就直接返回该域名所对应的ip。

3、如果缓存中没有,则会向我们事先设置好的dns服务器 [ 一般有两个, DNS1 & DNS2 ] 去请求,即所谓的`递归查询`,dns服务器首先会到自身解析数据库中去查。

4、如果dns1(dns2)服务器在自己的解析库中也没找到,它就会自动帮我们向根服务器发送询问请求。

5、此时,根看到要请求的是org的后缀(.org),就会把org所在的dns服务器告诉我们的dns。

6、然后,我们的dns服务器就会去请求org所在的dns服务器

7、当请求到达org dns服务器时,org一看域名是在rootkit这个域下的,就会把rootkit所在的dns服务器告诉我们的dns服务器

8、再然后,我们的dns服务器就会去请求rootkit这个域名的dns服务器

9、rootkit这个域的dns服务器一看是要访问www就直接找到了www对应的A记录的ip,并把它丢给我们的dns,上面逐个询问的过程,即 `迭代查询`

10、最后,我们的dns再把最终解析到的这个ip丢给我们的客户端,然后客户端就直接拿着去访问了

11、返回来的权威结果本地就会就会进行缓存,以便下次查询

三、简洁版
       1.先向本地dns缓存查看有没有该域名对应的ip地址,有直接跳出,没有接着往下
  2.向根dns服务器询问域名对应的ip地址(根dns服务器会让他去查询顶级dns服务器)
  3.向顶级dns服务器询问域名对应的ip地址(顶级dns服务器会让他去查询权威dns服务器)
  4.向权威dns服务器询问域名对应的ip地址(权威dns服务器会让他去查询二级dns服务器)
  5.向二级dns服务器询问域名对应的ip地址(二级dns服务器会返回对应的ip地址)
  6.接收到ip地址后,会先把ip和域名对应关系保存到本地dns缓存,以便下次方便访问

参考:https://www.cnblogs.com/Rain99-/p/10658079.html

DNS的解析流程的更多相关文章

  1. 用户访问网页流程、DNS 解析流程

    一.用户访问流程 二.DNS解析流程 DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于 TCP/IP 网络,它所提供的 ...

  2. 简单理解DNS解析流程(一)

    0x0 简单理解dns DNS服务器里存着一张表 表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一 浏览器访问某个域名,实际上是访问它的ip地址 所以浏览器需要知道域名对应的ip地址 如 ...

  3. 前端优化:DNS预解析提升页面速度

    在网页体验中我们常会遇到这种情况,即在调用百度联盟.谷歌联盟以及当前网页所在域名外的域名文件时会遇到请求延时非常严重的情况.那么有没有方法去解决这种请求严重延时的现象呢? 一般来说这种延时的原因不会是 ...

  4. HTML页面加载和解析流程详细介绍

    浏览器加载和渲染html的顺序 1. IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的. 2. 在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元 ...

  5. html页面加载和解析流程

    HTML页面加载和解析流程 用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件: 浏览器开始载入html代码,发现<head>标签内有一 ...

  6. DNS预解析dns-prefetch提升页面载入速度优化前端性能

    当浏览器请求一个URL的时候,通过firebug我们可以发现大概有以下几个过程:阻挡.域名解析.建立连接.发送请求.等待响应.接收数据.后面四个跟用户的网络情况和你的服务器处理速度有关,本文重点说说前 ...

  7. 前端优化DNS预解析

    写在前面 今天再看一同事写的代码,发现了这样<link rel="dns-prefetch" href="//hm.baidu.com">这个代码, ...

  8. centos的DNS服务工作流程及搭建

    1  什么是DNS? DNS(Domain Name Server,域名服务器)即域名解析服务,是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS ...

  9. DNS递归解析和迭代解析

    DNS解析流程分为递归查询和迭代查询,递归查询是以本地名称服务器为中心查询, 递归查询是默认方式,迭代查询是以DNS客户端,也就是客户机器为中心查询.其实DNS客户端和本地名称服务器是递归,而本地名称 ...

随机推荐

  1. vim简明教程(附快速记忆方法)

    vim分为四种模式: 普通模式(normal mode) 插入模式(insert mode) 可视模式(visual mode) 命令模式(excute mode) 下面整理了常用的快捷键和记忆方法( ...

  2. R 语言中的多元线性回归

    示例 sessionInfo() # 查询版本及系统和库等信息 # 工作目录设置 getwd() path <- "E:/RSpace" setwd(path) rm(lis ...

  3. JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、jinfo、jconsole使用详解

    JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jstack.jmap.jhat.jstat等小巧的工具,本博客希望能起抛砖引玉之用,让 ...

  4. 学到了林海峰,武沛齐讲的Day51 django+数据库

    连不上,通过这一步解决 搞死了..辛苦但觉得值得 刷数据库 出问题 IDEA关联MySQL报错:Server returns invalid timezone. Go to ‘Advanced’ ta ...

  5. docker运用

    由于目前工作中不使用docker 时间长了,下一个项目中要使用docker ,记录一下docker的运用 1:docker的部署 yum install -y yum-utils device-map ...

  6. {"errcode":40029,"errmsg":"invalid code, hints: [ req_id: LEgfftXIRa-BU8_9 ]"}

    {"errcode":40029,"errmsg":"invalid code, hints: [ req_id: LEgfftXIRa-BU8_9 ...

  7. C# 遍历控件名称

    List<string> list = new List<string>(); list.Add("textBox2"); list.Add("t ...

  8. HTML标签与属性

    HTML中常用的一些标签和属性. 1.lang属性:搜索引擎      en:英文,  zh:中文 2.meta:元数据     charset属性:字符集编码方式 3.h1~h6:标题   一级标题 ...

  9. 在linux 下配置firewalld

    查看firewalld 是否开始与运行 以下两种方式都可以 systemctl status firewalld.service firewall-cmd --state 查看所有打开的端口 以下两种 ...

  10. [前端][自定义DOM事件]不使用setTimeout实现双击事件或n击事件

    使用setTimeout实现双击事件 例如,这样: let div = document.getElementById("div"); doubleClick(div, funct ...