Java Web DNS

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

  域名

  网络中的地址方案有两套:IP地址系统和域名地址系统。这两套地址系统是一一对应的关系。IP地址用二进制数来表示,每个IP地址为32位二进制,由4个小于256的数字组成,数字之间用点分隔,例如220.181.28.53表示一个IP地址。而与网络中的数字型IP地址相对应的字符型地址称为域名。

  一个域名一般由英文字母或阿拉伯数字以及横线“-”组成,最长可达67个字符(包括后缀),并且字母的大小写没有区别,每个层次最长不能超过22个字母。这些符号构成了域名的前缀、主体和后缀等几个部分,组合在一起构成一个完整的域名。

  必须按行政管理机构的规则申请域名。如果某个域名已经被申请使用,那么无法使用相同的名称;如果在内网(未接入Internet的局域网)中使用域名,那么可以由用户(系统管理员)自行设置域名。

  举例www.163.com来说明:它由两部分组成,163是该域名的主体,com是该域名的后缀,代表这是一个com国际域名。www是主机名,163.com是www的域名。

  域名空间

  域名空间指组成域名的一个完整结构。DNS域名空间被组织成一个树形结构,每个域名对应树中的一个结点。每个域代表名字空间中特定的一块,并由一个行政实体进行管理。而域名树的根称为“.”,在根之下是顶级域。顶级域分两种:第一种是普通顶级域,表示组织性或行政性机构,例如com(工、商和金融等企业)和edu(教育机构)。第二种是国家(或地区)代码顶级域,是因为Internet快速发展而出现的国家(或地区)代码,例如cn(中国)和us(美国)。一般用户可以在顶级域下申请易记又能体现一定含义的域名。

  DNS的分层结构如下:

  

  DNS服务器类型

  域名服务器可以分为主DNS服务器、辅助DNS服务器和高速缓存服务器这3种类型。

  1 主DNS服务器

  该DNS服务器保存域中所有信息的权威性信息源,从管理员编辑生成的可读可写的区域配置文件中读取域信息。也就是说,该DNS服务器既可以接受新用户的注册,也可以给用户提供名称解析服务。

  2 辅助DNS服务器

  该DNS服务器向域中的用户提供DNS查询,主要目的在于减轻主DNS服务器的负载。与主DNS服务器的不同之处在于,该DNS服务器不维护本地的区域配置文件,将主DNS服务器中的区域配置文件复制到本地文件系统,区域记录信息是只读的。也就是说,该DNS服务器不能接受新用户的注册,只能为已经注册的用户提供名称解析服务。

  3 高速缓存服务器

  该缓存服务器只运行DNS服务器程序,而本地不存在区域配置文件。当DNS客户端查询某个域名时,该缓存服务器只是转向查找操作,将DNS服务器返回的结果保存在高速缓存中,以后再有用户查询该域名时,该缓存服务器可以立即返回解析结果。该缓存服务器的解析结果不具有权威性,提供的只是间接信息。

  DNS解析的过程

  DNS基于客户机/服务器模式,当DNS客户机使用某个域名时,向DNS服务器发送一个服务请求,服务器解析该请求,把解析结果返回给客户机。这样就完成了一次域名解析。因为Internet中存在大量主机,并且在不断地增加,所以构成DNS域名的这棵“树”以分布式数据库的形式保存在世界各地不同的DNS服务器中。

  举例说明解析的过程:假设有这样一个局域网环境:在本地局域网中安装设置了一台DNS服务器,该服务器指向根域服务器,该局域网中每一台客户机的DNS都指向内网中这台DNS服务器。现在局域网中有一台客户机需要访问域名为wyh.com的主机,解析过程如下:

  

  1 本地工作站从本地设置中查知本地DNS服务器的IP地址是内网中的一台工作站,因此将需解析的域名发往该主机。

  2 本地DNS服务器首先在本地缓存和本地资料库中进行查找,若未找到相应的域名信息,则将向根域服务器发送查找信息。

  3 根域服务器不知道具体域名对应的IP,查看到发过来的域名中的顶级域为com,则返回管理com的DNS服务器的IP地址。

  4 本地DNS服务器收到管理com的DNS服务器的IP地址后,向com管理服务器发送查询信息。

  5 com服务器中通常也不会保存具体域名的解析信息,根据域名返回管理该域名的DNS服务器的IP地址。

  6 本地DNS服务器再次向wyh.com管理服务器发送解析请求。

  7 管理wyh.com域名解析信息的服务器发回解析的信息。

  8 本地DNS服务器把收到的解析信息保存在缓存中,并把解析信息返回给发出请求的本地工作站。

  9 本地工作站使用获得的IP地址访问wyh.com主机。

  以上过程模拟了经过4个DNS服务器查询的过程。在实际应用中,可能需要转发更多的DNS服务器才能获取解析信息。以上示例中,最好的情况是,访问本地DNS服务器时,可以从高速缓存中直接获取解析信息。

  参考资料

  《Linux服务器配置与管理》 P219-223

原文地址:https://www.cnblogs.com/WJQ2017/p/8385758.html

时间: 2024-10-14 20:49:35

Java Web DNS的相关文章

Java Web DNS域名解析

一.什么是DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析). 二.DNS查询的两种方式 1)递归解析 如图所示的是递归方式.局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询.最后将得到的查询结果返回给局部DNS服

深入分析Java Web技术(1)

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

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

【Java学习系列】第4课--Java Web相关

本文地址 分享提纲: 1.概述 2. Jsp基础 2.1 1.概述 1)[来源和先导] 本文主要的java web的教程来源JSP是 菜鸟教程JSP 和 天码营Java Web.     主要的先导工作来源知乎,请参考 自学Java怎么入门  和 如何系统地学习java web技术 2)[脑图] Java Web思维导图 2. Jsp基础 2.1)[简介] JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以

Java web项目的解耦合

以前的项目大多数都是java程序猿又当爹又当妈,又搞前端(ajax/jquery/js/html/css等等),又搞后端(java/mysql/oracle等等). 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情,正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精. 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开.你要是这辈子就吃java这碗饭,就不要去研究什么css,js等等. 把

Tomcat:Java Web服务器配置详解

一.Tomcat概述 1.tomcat简介 tomcat是基于JDK的web服务器,其能运行Servlet和JSP规范总.Tomcat 5支持最新的Servlet 2.4 和JSP 2.0规范.实际上Tomcat 部分是Apache服务器的扩展,但它是独立运行的.运行tomcat时,它实际上作为一个与Apache 独立的进程单独运行的.Apache 为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet.tomcat具有处理HTML页面的功能,另外它还是一个Servlet和JSP

在linux环境下搭建java web测试环境(非常详细!!)

一.项目必备软件及基本思路 项目必备:虚拟机:VMware Workstation (已安装linux的 CentOS6.5版本) 项目:java web项目 (必须在本地部署编译后选择项目的webRoot,改为ROOT(ROOT包含下面四个关键文件),放到tomcat下的webapps下即可,因为tomcat启用一个工程的时候,就是发布了除了JSP以外的,所有已被编译过的java文件,所以只能放在本地部署生成编译后的class文件).java环境配置:配置JDK服务器:tomcat数据库:My

JAVA读书推荐----《深入分析Java Web技术内幕》--《java多线程编程核心技术》--《大型网站技术架构 核心原理与案例分析》-《Effective Java中文版》

(1)  首先推荐的不是一本书,而是一个博客,也是我们博客园另外一位博友java_my_life. 目前市面上讲解设计模式的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客.这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是: 1.随便开篇点明该设计模式的定义 2.图文并茂讲解该设计模式中的结构 3.以详细的代码形式写一下该种设计模式的实现 4.补充内容 5.讲解该设计模式的优缺点 对于一个设计模式我们关

大型Java Web项目的架构和部署问题

一位ID是jackson1225的网友在javaeye询问了一个大型Web系统的架构和部署选型问题,希望能提高现有的基于Java的Web应用的服务能力.由于架构模式和部署调优一直是Java社区的热门话题,这个问题引发了很多热心网友的讨论,其中一些意见对其它大型Web项目也有很好的指导意义.在讨论之初jackson1225这样描述了当前的应用的架构和部署方案: 目前系统架构如下: web层采用struts+tomcat实现,整个系统采用20多台web服务器,其负载均衡采用硬件F5来实现; 中间层采