Java Web DNS域名解析

一、什么是DNS

  DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

二、DNS查询的两种方式

  1)递归解析

  如图所示的是递归方式。局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后将得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。

    

  2)迭代解析

  当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析,如图所示。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。也就是说,迭代解析只是帮你找到相关的服务器而已,而不会帮你去查。比如说:baidu.com的服务器ip地址在192.168.4.5这里,你自己去查吧,本人比较忙,只能帮你到这里了。

            

三、DNS域名解析过程

  1、首先,浏览器会检查自己的DNS缓存

  2、浏览器会查找操作系统缓存(本地hosts文件)

  3、浏览器会把域名发送给LDNS(本地DNS服务器,承担了主要的域名解析工作,通过ipconfig可以查到),LDNS首先会查询缓存记录

  4、LDNS服务器向Root Server域名服务器(根域名服务器)请求解析,经过迭代解析,直至根域名服务器返回一个gTLD服务器(主域名服务器)地址。

  5、LDNS服务器向主域名服务器(国际的顶级域名服务器,全球只有13台)请求解析,返回Name Server域名服务器地址(注册的域名服务器)

  6、LDNS服务器向域名的解析服务器发出请求,最终得到与域名相对应的IP地址。

四、DNS负载均衡

  当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会蹦掉。处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的?例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等。

五、参考资料:

  1、咸鱼老弟博客园  http://www.cnblogs.com/xianyulaodi/p/6547807.html#_label1

  2、《深入分析Java Web技术内幕》 许令波 著

时间: 2024-10-09 23:29:14

Java Web DNS域名解析的相关文章

Java Web DNS

Internet中的每台计算机都有一个唯一的IP地址,通过IP地址可以连接到对应的主机.但是,IP地址是一些抽象的数字,不方便记忆,最好能用一些有意义的字符组合来表示一台主机,于是就产生了域名系统(DNS,Domain Name System).DNS把一些有意义的字符组合对应到抽象的IP地址,即通过DNS服务器保存主机名和IP地址之间的映射关系. 域名 网络中的地址方案有两套:IP地址系统和域名地址系统.这两套地址系统是一一对应的关系.IP地址用二进制数来表示,每个IP地址为32位二进制,由4

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

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

深入分析java web技术内幕目录一览

Web请求过程 如何发起请求:browser,httpclient http解析:chrome ,cache Dns域名解析:域名缓存 cdn:负载,动态加速,回源 Java I/O I/0类库的基本架构:字节操作,字符操作,字节字符的转化 磁盘的I/O:内核空间,用户空间,同步,异步,内存映射 网络I/O工作机制:tcp状态转化,网络传输的因素,socket的工作机制,通信链路,数据传输 NIO的工作方式:BIO cpu被抢占,channel,select,selectionkey,byteb

DNS域名解析的主要请求过程

摘自 <深入分析Java Web技术内幕> 当一个用户在浏览器中输入www.abc.com时,DNS解析将会有将近10个步骤,这个过程大体描述如下. 当用户在浏览器中输入域名并按下回车键后. 第1步,浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束.浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置.这个缓存时间太长和太短都不好,如果缓存时间太长,一

DNS域名解析过程

前言 本文来自<深入分析Java Web技术内幕>一书,因为本人对DNS不是特别熟悉,这本书关于DNS的部分也已经讲得比较详细了,所以就直接把书里面的内容拿来用了.老规矩,不复制.不黏贴,全部内容手打,边打边学习.理解. DNS域名解析 我们知道互联网都是通过URL来发布和请求资源的,而URL中的域名需要解析成IP地址才能与远程主机建立连接,如何将域名解析成IP地址就属于DNS解析的工作范畴. 可以毫不夸张地说,虽然我们平时上网感受不到DNS解析的存在,但是一旦DNS解析出错,可能会导致非常严

读书笔记之深入分析Java Web技术内幕

章节: 1 B/SB/S的优点: 客户端使用统一的浏览器(Browser) ,浏览器的统一带来了操作的统一,无论使用什么服务,因为浏览器是相同的,所以操作类似.客户使用简单了.服务端开发简化; 使用统一的http协议,便于开发,可以直接使用现有的基于http协议的容器,只关注业务逻辑. 2. BS的结构    B/S架构前后端都基于http协议交互数据. http协议采用无状态的短连接的数据模式,既一次请求完成一次数据交互,也对应着一个业务逻辑.          DNS可以解析域名为IP地址

深入分析Java Web技术(1)

BS网络模型的基本过程: 当我们在浏览器中输入"www.google.com"的时候,首先会请求DNS服务器对域名进行解析成都应的IP地址,然后根据这个IP地址在互联网上找到谷歌的服务器,向这个服务器发送一个"get"请求,有这个服务器决定返回数据资源给请求的用户(在服务器端可能还会存在其他复杂的业务逻辑,服务器端有很多机器的话,需要考虑负载均衡,由哪一台服务器对资源进行回复,请求的文件是存储在静态文件中还是存储在分布式缓存中或者是数据库中,当数据返回服务器时,会发

详解CentOS7.4搭建Tomcat构建Java Web站点(内附源码包)

Java简介 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论.Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移植性.多线程.动态性等特点.Java可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等. Tomcat简介 Tomcat是Apache软件基金会的Jakarta项目中的一

Java Web(1):HTTP协议

HTTP协议 HTTP(HyperText Transfer Protocol)协议是应用层协议,是一个基于请求(request)/响应(response)模式的.无状态的(stateless)协议 HHTP URL http://hostname[:port][abs_path] 浏览器与服务器连接的一般过程 ServerSocket serverSocket = new ServerSocket(80); serverSocket.accept(); /* www.baidu.com:80