一、域名解析过程

1、浏览器检查缓存,域名缓存时间可以通过 TTL 属性来设置。

2、如果浏览器缓存中没有,浏览器会去查找操作系统缓存中是否有这个域名对应的 DNS 解析结果。如果要设置域名对应的 IP 地址,可以在Windows 中的配置文件 C:\Windows\System32\drivers\etc\hosts 来设置或在 Linux 中的配置文件 /etc/hosts 来设置,操作系统会缓存这个 IP 地址。

3、如果前两步无法解析时,会把域名发给 Local DNS 服务器(本地域名服务器)。如果要查询 LocalDNS 服务器的信息,在 Windows 下可以通过 ipconfig 命令查询,在 linux 下可以通过 cat /etc/resolv.conf 文件查询。

4、如果 Local DNS 仍然没有查询到,就直接到 Root DNS 服务器(根域名服务器)请求解析。

5、Root DNS 服务器返回给 Local DNS 服务器一个所查询域的 gTLD 服务器(主域名服务器),gTLD 是国际顶级域名服务器。

6、Local DNS 服务器向 gTLD 服务器发送请求。

7、gTLD 服务器返回域名对应的域名服务器地址,即域名解析任务由这个域名提供商的服务器完成。

8、在域名服务器查询到 IP 地址,连同 TTL 值返回给 Local DNS 服务器,在 Local NDS 服务器的缓存时间由 TTL 控制。

9、将解析结果返回给用户,并根据 TTL 的值在本地系统缓存。

二、查看解析结果

在 Linux 和 Windows 下都可以用 nslookup 命令来查询域名的解析结果,如下图。

另外在 Linux 系统中还可以使用 dig 命令来查询 DNS 解析过程。
 
 
三、清除域名缓存
域名解析后会主要在两个地方缓存结果,一个是 Local DNS 服务器,另一个是用户的本地机器。这两个缓存都是由 TTL 值和本地缓存大小控制的。在 Windows 中我们可以通过执行 ipconfig / flushdns 命令来刷新缓存,在 Linux 中我们可以通过执行 /etc/init.d/nscd restart 命令来清除缓存。
另外在 Java 的 JVM 中也会缓存 DNS 的解析结果,这个缓存是在 InetAddress类中完成的。它有两种缓存策略:一是正确解析后的结果缓存,另一种是失败的解析结果缓存。这两个缓存时间是在 %JAVA_HOME%\lib\security\java.security 文件中配置的。两个配置项分别是:networkaddress.cache.ttl 和 networkaddress.cache.negative.ttl,默认值分别为 -1(永不失效)和 10(缓存10秒)。如果使用InetAddress类解析域名必须是单例模式,否则每次创建实例时都要进行一次完整的域名解析,非常耗时。
 

四、域名解析的几种方式

域名解析记录主要分为 A 记录、MX 记录、CNAME 记录、NS 记录和 TXT 记录。

1、A 记录:即 Address,用来指定域名对应的 IP 地址。A 记录可以将多个域名解析到一个 IP 地址,但不能将一个域名解析到多个 IP 地址。

2、MX 记录:即 Mail Exchange,用来将某个域名下的邮件服务器指向自己的 Mail Server。设置之后正常 Web 请求仍然解析到 A 记录的 IP 地址,但是邮件的路由将会被解析到 MX 记录的 IP 地址。

3、CNAME 记录:即 Canonical Name(别名解析),可以为一个域名设置一个或多个别名。

4、NS 记录:为某个域名指定 DNS 解析服务器。

5、TXT 记录:为某个主机名或域名设置说明。

[Web] Web请求过程之二:DNS 域名解析的更多相关文章

  1. 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之二

    好了,废话也不多说,咱们直接来看看这款MVC的造型——你可能会大吼:“这……这特么的都是些什么鬼?” 靠,告诉你吧,我也不知道这都是些什么鬼,反正以前我是没有见过这样的MVC.咦,老纸的config文 ...

  2. Java Web DNS域名解析

    一.什么是DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串 ...

  3. 域名下Web项目重定向出现DNS域名解析错误问题

    问题: 项目使用的是阿里云的ESC,前几天为IP地址添加了域名 发现发送正常请求时跳转没问题,但发送重定向请求时,页面就会出现DNS域名解析错误的情况 1.我在Tomcat的server.xml中配置 ...

  4. 深入web的请求过程

    一.深入web的请求过程 1.1.B/S网络架构概述 · 从前端到后端,都基于应用层协议HTTP来交互数据.一个请求就对应了一个操作,完成操作之后就断开了连接.基于这样的特点可以用来满足海量的用户的操 ...

  5. ASP.NET Web API 控制器创建过程(二)

    ASP.NET Web API 控制器创建过程(二) 前言 本来这篇随笔应该是在上周就该写出来发布的,由于身体跟不上节奏感冒发烧有心无力,这种天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病 ...

  6. Delphi 6 Web Services初步评估之二(转)

    Delphi 6 Web Services初步评估之二(转)   ★ 测试环境:CPU:PIII 550内存: 256MBOS: Windows2000 Server + SP2Web Server: ...

  7. web页面请求历程

    web页面请求历程 1)准备DHCP,UDP,IP和以太网 客户端要访问www.google.com的网站. 首先客户端要与网络相接,没有IP地址地址就不能做什么事情,所以客户端采取的一个网络相关的动 ...

  8. 手把手和你一起实现一个Web框架实战——EzWeb框架(二)[Go语言笔记]Go项目实战

    手把手和你一起实现一个Web框架实战--EzWeb框架(二)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 上一篇文章我们实现了框架的雏形,基本地 ...

  9. IIS7.5使用web.config设置伪静态的二种方法

    转自 网上赚钱自学网 .http://www.whosmall.com/post/121 近几天公司里开发的项目有几个运行在IIS7.5上,由于全站采用的是伪静态,因此从网上找到两两种方法来实现.这两 ...

随机推荐

  1. Linux环境下服务器环境搭建-mysql

    下载对应版本的mysql.rpm(Linux 6 安装el6 Linux 7 安装el7) 安装环境 centos 7,安装版本mysql57-community-release-el7-9.noar ...

  2. 关于Target=" "的一些属性

    总结目前所知的Target=""的几个属性,对其它博客进行整理和归纳. Target="_blank":浏览器总在一个新打开.未命名的窗口中载入目标文档. 说通 ...

  3. spring冲刺第五天

    昨天进行了地图的初步编写,上网查找了错误的原因,改进了源代码,使程序可以执行. 今天继续编写地图代码,完善地图界面,使其变得美观. 遇到的问题:地图的完善比较难.

  4. Task 4.3 求环形数组的最大子数组和

    任务要求:输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.    如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n- ...

  5. Alpha 冲刺报告3

    队名 massivehard 组员一(组长:晓辉) 今天完成了哪些任务 .整理昨天的两个功能,补些bug 写了一个初步的loyaut github 还剩哪些任务: 后台的用来处理自然语言的服务器还没架 ...

  6. 用CSS3的animation轻松实现背景动画:漂浮的云

    背景动画如果用的恰当,会给网页带来意想不到的效果.在过去,我们只能用flash或Javascript来实现.幸运的是,CSS3的流行使得我们完全可以使用它来实现这种效果,不再依赖其它编程技术.一段简单 ...

  7. Scrum 6.0

    sprint演示 1.坚持所有的sprint都结束于演示. 团队的成果得到认可,会感觉很好. 其他人可以了解你的团队在做些什么,并得到重要反馈. 演示是一种社会活动,不同的团队可以在这里相互交流,讨论 ...

  8. linux安全配置学习

    参考摘自https://www.cnblogs.com/hiccup/p/4300963.html 1.关闭icmp请求 #vm虚拟机是130地址,通过echo 1 > /proc/sys/ne ...

  9. TP5 多入口文件配置的坑

    闲话不多说,TP5(5.0.20) 在配置多入口文件的时候你是否遇到过一下的问题呢? 开发设计的需求吧网站拆分为前台.后台.API 3 个模块,对应的也需要3个入口文件,后台和API入口文件是用PAT ...

  10. [转帖]nvidia nvlink互联与nvswitch介绍

    nvidia nvlink互联与nvswitch介绍 https://www.chiphell.com/thread-1851449-1-1.html 差不多在一个月前在年度gtc会议上,老黄公开了d ...