DNS系统解析基本流程

@WEB服务基础

1.1、DNS简介

了解完用户访问网站的基本流程后,再来了解下DNS解析的基本流程,这是企业针对运维岗位进行招聘时经常会面试的问题,因此,必须要熟练掌握。DNS,全称为 Domain Name System,它在一个网站运行中起到了至关重要的作用,其主要作用是把网站域名解析为对应的P地址,例如:把www.baidu.com解析为对应的IP地址记录,如1.1.1.1,这个从域名到IP的解析过程,称作A记录,即 Address Record DNS系统除了负责这个最重要的A记录解析外,还有很多的功能
例如:
设置 CNAME别名记录,这个别名解析功能常被CDN加速服务商应用。
设置MX邮件记录,这个MX记录功能,在购买或搭建邮件服务时会被用到。
设置PTR记录,反向解析,即把IP地址解析为对应的域名,和A记录的解析相反,此功能在邮件服务等业务中会用到。

DNS系统的架构类似于一棵倒挂着的树(和 Linux系统目录结构类似),它的顶点也是根(""),只不过这个根是用点("")来表示的,不是目录的根斜线("/)。整个DNS系统的树状结构如图所示。
在这里插入图片描述

1.2、DNS解析流程

(1)DNS解析流程说明

客户端是怎样一步步通过各个层级的DNS,获取到域名所对应的IP的呢?这里给大家做一个较为详细的说明。DNS的解析流程实际上就是从用户在客户端浏览器中输入网站地址并按回车开始的,一直持续到获取域名对应的IP,整个过程可分为如下几个步骤。
第一步:客户端用户在浏览器里输人www.etiantian.org网站地址后回车,系统首先会查找系统本地的DNS缓存及hosts文件信息,确定是否存在www.etiantian.org域名对应的IP解析记录,如果有就直接获取到IP地址,然后去访问这个IP地址对应的www.etiantian.org域名的服务器。一般第一次请求时,DNS缓存是没有解析记录的,而 hosts多为内部临时测试使用。
第二步:如果客户端本地DNS缓存及本地hosts文件没有www.etiantian.org域名对应的解析记录,那么,系统会把浏览器的解析请求发送给在客户端本地设置的DNS服务器地址(通常称此DNS为LDNS,即 Local dns)解析,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回IP地址给客户端;如果没有,则LDNS会负责继续请求其他的DNS服务器。
第三步:LDNS从DNS系统的("")根开始请求对www.etiantian.org域名的解析,根DNS服务器在全球一共有13台,根服务器下面是没有www.etiantian.org域名解析记录的,但是根下面有www.etiantian.org对应的顶级域.org的解析记录,因此,根会把.org对应的DNS服务器地址返回给LDNS。
第四步:LDNS获取到org对应的DNS服务器地址后,就会去.org服务器请求
www.etiantian.org域名的解析,而org服务器下面也没有www.etiantian.org域名对应的解析记录,但是有 etiantian.org域名的解析记录,因此,。org服务器会把 etiantian.org对应的DNS服务器地址返回给LDNS。
第五步:同理,LDNS获取到 etiantian.org对应的DNs服务器地址后,就会去etiantian.org服务器请求对www.etiantian.org域名的解析,etiantian.org域名对应的DNS服务器是该域名的授权DNS服务器,这个DNS服务器正是企业购买域名时用于管理解析的服务器(也可能是自建的授权DNS服务器),这个服务器会有与www.etiantian.org对应的IP解析记录,如果此时没有,就表示企业的域名人员没有为www.etiantian.org域名做解析,即网站还没架设好。
第六步:etiantian.org域名DNS服务器会把www.etiantian.org对应的IP解析记录(例如1.1.1.1)发给LDNS。
第七步:LDNS把来自授权DNS服务器的与www.etiantian.org对应的IP解析记录发给客户端浏览器,并且LDNS会在本地把域名和IP的对应解析记录缓存起来,以便下一次更快地返回相同解析请求的记录。至此,整个DNS的解析流程就完成了。
(2)DNS解析流程图
在这里插入图片描述

(3)通过实践理解DNS解析流程

下面通过dig命令来帮助大家进一步理解DNS解析流程。
在这里插入图片描述

1.3、HTTP协议

1、HTTP协议简介

HTTP协议,全称为HyperTextTransferProtocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP的重要应用之一是www服务。设计HTTP协议最初的目的就是提供一种发布和接收HTML(一种页面标记语言)页面的方法。HTTP协议是互联网上常用的通信协议之一。它有很多的应用,但最流行的就是用于Web浏览器和web服务器之间的通信,即WWW应用或称web应用。WWW,全称为 World Wide Web,常称为Web,中文译为“万维网”。它是目前互联网上最受用户欢迎的信息服务形式。HTTP协议的wwW服务应用的默认端口为80,另外一个加密的www服务应用https的默认端口为443,主要用于网银、支付等和钱
相关的业务。

2、HTTP协议版本

HTTP协议从诞生之初到现在已经经历了若干个版本,其中最主要的版本为HTTP/1.0、HTTP/1.1。HTTP/1.0是第一个得到广泛使用的版本,而HTTP1.1为当前使用的主流版本
HTTP1.0简介
HTTP1.0是第一个得到广泛使用的HTTP版本。HTTP/1.0在HTTP0.9的基础上增加了HTTP请求头,可支持更多的请求方法,并且能对多媒体对象进行处理。HTTP/1.0使得包含生动图片的Web页面和交互式表格成为可能,而正是这些页面和表格促使互联网被人们广泛地接受。HTTP/1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后即断开TCP连接,服
务器不跟踪每个客户,也不记录过去的请求。
HTTP1.1简介
HTTP1.1的重点是修复HTTP设计中的缺陷,从可扩展性、缓存处理、带宽优化、持久连接、host头、错误通知、消息传递、内容协商等多个方面都做了相关改进。HTTP/1.1是当前互联网主流的HTTP版本。在连接方面,HTTP1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和时间延迟。在请求头方面,HTTP/1.1增加了更多的请求头和响应头信息,用以增强HTTP功能。例如:host主机头功能,可以让web浏览器使用主机头名来明确表示要访问服务器上的哪个Web站点,这样就可以使用web服务器在同一个IP地址和端口号上配置多个虚拟web站点。
HTTP1.1的持久连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为 Keep-Alive时,表示客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为 close时,表示客户端通知服务器返回本次请求结果后关闭连接。HTTP/1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头等。

3、HTTP请求方法

在HTTP通信中,每个HTTP请求报文都包含一个方法。用以告诉web服务器端需要执行哪些具体的动作,这些动作包括:获取指定Web页面、提交内容到服务器、删除服务器上资源文件等,这些HTP请求报文中包含的方法被称为HTTP请求方法。其中,常用的HTTP请求方法见下表
在这里插入图片描述

4、HTTP状态码

HTTP状态码介绍
HTTP状态码(HttpStatusCode)是用来表示web服务器响应HTTP请求状态的数字代码。每当Web客户端向Web服务器发送一个HTTP请求时,web服务器都会返回一个状态响应代码。这个状态码是一个三位数字代码,作用是告知Web客户端此次请求是否成功,或者是否要采取其他的动作方式。
在操作过程中最常见的状态码如下

在这里插入图片描述在这里插入图片描述

5、HTTP报文

HTTP报文中有很多行内容,这些行的字段都是由一些ASCI1码串组成,但各个字段的长度是不同的。HTTP报文可分为两种,一种是从Web客户端发往web服务器的HTTP报文,称为请求报文(RequestMessage)。另外一种是从web服务器发往Web客户端的报文,称为响应报文(ResponseMessage),HTTP的请求和响应报文的格式类似。
1.HTTP请求报文(RequestMessage)介绍
HTTP请求报文由请求行、请求头部( header)、空行和请求报文主体几个部分组成,如下表
在这里插入图片描述
2.HTTP响应报文(ResponseMessage)介绍
HTTP响应报文由起始行、响应头部( header)、空行和响应报文主体这几个部分组成,和HTTP请求报文格式类似。下表给出了HTTP响应报文的一般格式。
在这里插入图片描述

6、HTTP协议原理

HTTP协议属于OSI模型中的第七层应用层协议,HTTP协议的重要应用就是WWW服务应用,下面就以Www服务应用为例介绍HTTP协议的通信原理。以HTTP协议进行通信时,需要有客户端(即终端用户)和服务器端(即Web服务器),在web客户端向web服务器发送请求报文之前,先要通过TCP/IP协议在Web客户端和服务器之间建立一个TCP P连接。整个HTTP协议请求的工作流程如下:
1)终端客户在Web浏览器地址栏输入访问地址http:/w. etiantian. org/index. html
2)Web浏览器请求DNS服务器把域名www.etiantian.org转换成Web服务器的IP地址,此处的解析过程就是DNS解析的原理流程,前面已经讲过了,此处不再赘述。
3)Web浏览器将端口号(默认是80)从访问地址(URL)中解析出来。
4)web浏览器通过解析后的IP地址及端口号与Web服务器之间建立一条TCP连接。
5)建立TCP连接后,Web浏览器向Web服务器发送一条HTTP请求报文,请求报文的内容格式及信息细节前面已经讲过了,此处不再赘述。
6)web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文,响应报文的内容格式及信息细节前文也已经讲过了,此处不再赘述。
7)Web服务器关闭HTTP连接,关闭TCP连接,Web浏览器显示访问的网站内容到屏幕上。

1.4、重点总结

DNS解析原理、HTTP协议原理都是高薪面试的重点,是高级运维必会知识,这里对其中的重要知识点进行汇总,如下:
1、HTTP协议位于OSI模型中第7层应用层
2、HTTP协议的重要应用是WWW服务。
3、用户上网流程、DNS解析流程。
4、DNS解析获取到IP后,建立TCP连接,然后发送HTTP请求的细节和服务器响应细节。
5、HTTP请求报文与HTTP响应报文知识。
6、到达HTTP服务后,请求后端集群节点的流程为nginx→FastcGI→PHP→(数据库、存储等)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值