WEB服务基础

DNS系统解析基本流程
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系统的树状结构如图所示。

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解析流程。

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浏览器显示访问的网站内容到屏幕上。
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→(数据库、存储等)。
9.5、网站流量度量术语
1、IP
IP(独立IP),即 Internet Protocol,这里指独立IP数,独立IP数是指不同IP地址的计算机访问网站时被计的总次数。独立IP数是衡量网站流量的一个重要指标。一般一天内(00:00-24:00)相同IP地址的客户端访问网站页面只会被计为一次,记录独立IP的时间可为一天或一个月,目前通用的标准为“一天”。假设有部分同学在教室的局域网中同时打开了博客(http:/ oldboyblog5lcto.com),请问对于51CTO网站是几个独立IP?答:是一个独立IP。这是因为,国内所有的公司几乎都是采用局域网共享上网的,即通过路由器NAT地址转换上网,每个计算机在局域网内的私有IP是不同的,但是在外网上,就必须由路由器把每个私网地址转换成了路由器接口的固定公网IP(多IP映射暂不考虑),所以说,对于网站来说一天内多个相同IP的客户端访问会被计为一个独立IP。
再假设一个客户机用户通过ADSL等直接拨号上网,但是上网的时候偶尔掉线,一共重新拨号了3次(相近时间重新拨号IP地址相同的几率是极小的),然后每次都继续打开同一个博客地址,请问此时,网站独立IP数是多少?答:是3个独立IP。由此可见,通过独立IP数度量网站访问量,和实际的访问情况不是很匹配。国内的企业、学校等多数是用NAT上网的,一个独立IP背后可能有数十上百个客户端访问。独立IP数虽然不是很准确,但却是MT技术人员比较关心的一个衡量网站的指标。
2、PV
PV(访问量)即 Page View,中文翻译为页面浏览,即页面浏览量或单击量,不管客户端是不是相同,也不管IP是不是相同,用户只要访问网站页面就会被计算PV,一次计一个PV。PV的具体度量方法就是从客户浏览器发出一个对web服务器的请求( Request),Web服务器接到这个请求后,将该请求对应的网页(Page)发送给浏览器,这样就产生了一个PV。这里有一个问题,就是只要这个请求发送给了浏览器,无论这个页面是否完全打开(或下载完成),都会被计数(1次为1个PV),一般为了防止用户快速刷PV很多网站会把PV的统计程序放在页面的最下面。用PV衡量网站时,PV数反映的是浏览某网站的页面数量,每刷新一次页面也算次。因此,可以说PV数与来访用户的数量成正比,但PV数并不是真正的页面来访者数量,而是网站被访问的页面数量,因为一个来访者可能产生多个PV。
问:如果一个用户要访问赶集网或58同城租房,你觉得用户可能会产生多少PV?
答:平均可能会有十几到几十个PV,一个来访者访问网站的PV数的多少是和网站提供的业务直接相关的。对于分类网站,用户浏览网站可能是为了找房子、找工作,因此一个用户访问的页面会很多,自然PV也就会很多PV( Page View)是网站被访问的页面数量的一个指标,但不能直接知道有多少人访问了这个网站。
一个来访者访问网站,可能产生若干PV数,但是独立IP数就只有1个,因此,如果对比一个网站的独立IP数和PV数,不难看出,PV数一定会大于等于独立IP数,其比例视网站的业务而定,对于分类门户,可能会达到10:1,甚至更多。
3、UV
UV(独立访客)即 Unique Visitor,同一个客户端(PC或移动端)访问网站被计为一个访客。一天(00:00-24:00)内相同的客户端访问同一个网站只计一次UV。UV一般是以客户端 Cookie等技术作为统计依据的,实际统计会有误差。考虑到一台客户端计算机可能会有多人使用,因此,UV(独立访客)实际上并不定是独立的自然人访问。
4、企业网站对IP、PV、UV的度量
1.对IP的度量
*分析所有Web服务器的访问日志信息,对IP地址段去重后计数,这是IT人员的基本计算手段。
*在网站的每一个(所有)页面结尾,嵌入Js等统计程序代码,待用户加载网页后,IP即传给统计IP的服务器,这种方法一般被第三方统计公司或在企业内部开发日志分析程序时使用。
*用第三方大家比较信任的统计工具,例如:谷歌的统计(GA)。IP的统计方法简单、易用,因此,成了多数网站衡量网站流量的重要指标之一
2.对PV的度量
*分析web服务的访问日志(需要排除JS、CSS及各种图片的日志信息),只计算HTML、PHP等页面数量。
*在网站的每一个页面结尾,嵌入JS等统计程序代码,待用户加载网页后,访问数量即传给统计PV的服务器,这种方法一般被第三方统计公司或在企业内部开发日志分析程序时使用。
*用第三方大家比较信任的统计工具,例如:谷歌的统计(GA)。PV的统计方法也很简单、易用,因此也是多数网站衡量网站流量的重要指标之一。
3.对UV的度量
通过客户端HTTP请求报文分析
一个客户端会多次请求网站服务器,每次HTTP请求都会携带客户端自身的大量信息,比如:IP地址、请求发出的时间、浏览器版本,操作系统版本等。网站服务器对这些请求进行分析,如果这些请求满足一些共同特征,比如来自同一个IP地址,且浏览器版本和操作系统版本相同,请求时间又相近等,那么就可以认为这些请求是来自于同一个客户端,那么多个页面访问也只算一个UV。共同特征的定义是由服务器方决定的。通常,用IP地址+其他特征共同来定义的情况较多。但此种度量方法无法解决以下问题,例如多个人的计算机软硬件雷同,并且是一个公司或学校的人;多个人共用一个计算机等情况。
通过 Cookie鉴别
当客户端第一次访问某个网站服务器时,网站服务器会给这个客户端的计算机发出个 Cookie,通常放在这个客户端计算机的C盘当中。在这个 Cookie中会分配一个独一无二的编号,这其中会记录一些访问服务器的信息,如访问时间、访问了哪些页面等等。当你下次再访问这个服务器的时候,服务器就可以直接从你的计算机中找到上次放进去的 Cookie文件,并且对其进行一些更新,但那个独一无二的编号是不会变的。

5.IP、PV、UV的区别
针对该主题,下面以一个访问示例来讲解吧。
假设某城市的一个网吧里,有10个人都进入了www.etiantian.org的网站,每个人平均访问了5个页面,但是这个网吧的对外出口是一个公网IP(注意:也可以配置多个IP出口,此处不计特殊情况),所以,对于 etiantian网站来说,只会计算一个独立IP访问,但是因为网吧里有10人在访问www.etiantian.org的网站,并且平均都访问了5次因此,对于 etiantian网站来说,PV数就是10×5=50个PV,而因为有10个人访问,就是10个不同的客户端访问,因此,UV(独立访客)为10。那么,在此访问示例中,网站独立IP数为1个,PV数为50个,UV(独立访客)为10个。通过上述结果,我们不难得出一个结论,一个网站的独立IP数量要比网站实际访问的pv数量小得多。通常情况下(国内互联网环境下),网站的UV数也会大于独立IP数。PV数高说明访问的页面数多,但是不一定就代表来访者多;但PV数一定与来访者的数量成正比,不过,PV并不直接决定页面的真实来访者数量。比如在访问某网站时,一个人也可通过不断地刷新页面,制造出非常高的PV数。PV数多,用户访问网站页面的总数量多,通常服务器的压力会大一些。

6.并发连接
网站并发连接
在面试过程中, Linux运维人员经常会被问到:你的公司网站最大并发是多少?那么到底什么是并发?怎么理解并发呢?
笔者查阅了很多资料,但还是没有找到让人信服的确切说法。下面是网上的一些说法:
A种理解:网站服务器每秒能够接收的最大用户请求数。
B种理解:网站服务器每秒能够响应的最大用户请求数。
C种理解:网站服务器在单位时间内能够处理的最大连接数。
虽然A、B的理解占IT人员中的大多数,但是,C种理解更为准确一些。
7、有关网站度量企业运维常见面试题
1)请问你如何理解网站并发?
2)你们公司网站访问量是多少?是怎么计算的?
定要理解IP、PV、并发量这3个点的知识,在回答时才能有的放矢,这三个点的多少决定面试时说多大的架构,对于没有经验的新手不能在介绍有几万PV的同时描述数十台的集群架构,这样就尴尬了。
关于网站访问指标的计算,可以考虑:
运维部门的日志分析。
开发在页面嵌入的JS程序(用于统计、收集、分析)。
运营市场通过第三方公司提供的工具进行统计,例如GA统计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值