HTTP协议HTTP协议原理
⽤户访问⽹站的基本流程:
1,登录浏览器输⼊⽹址
2,⽹址通过DNS解析出具体IP地址
3,TCP三次握⼿
4,浏览器向服务商的Web服务器发起⼀个请求(遵循http协议)
5,Web服务器响应⽤户请求,处理请求,返回响应包
6,浏览器通过http协议接收到响应包
7,浏览器处理响应包显⽰在浏览器上
8,TCP四次挥⼿
DNS的域名解析流程:
1,先本地PC的本地缓存
2,本地hosts映射⽂件⾥⾯是否做了DNS的映射
3,查本机的DNS,叫LDNS
4,DNS接收以后,⾃⼰的缓存
5,LDNS的hosts有没有
6,LDNS本地记录本
如果前六步能查到IP地址,叫做DNS的递归查询
7,还没有到就发起求助,叫做迭代查询
DNS的迭代查询流程
世界上有13台⼤型的域名解析服务器,叫做点服务器,只要含有点就跟它有关系
DNS向离它最近的⼀台点服务器求助
点服务器就把的地址发送了LDNS
LDNS求组
只给了LDNS baidu的位置
LDNS向.baidu求组
baidu知道就给ldns www.baidu
然后LDNS把具体的地址存到⾃⼰的缓存⾥,然后发给PC
PC在把这个存到⾃⼰的缓存⾥
HTTP协议简介
HTTP⼜叫超⽂本传输协议
HTTP是加密的协议
HTTP默认监听端⼝80
HTTPS默认端⼝443
HTTP请求⽅法
GET 读客户端请求指定资源信息,服务器返回指定资源,读的速度快明⽂的不加密
POST 写将客户端的数据提交到服务器,加密⽅式注册,⽤于注册信息
HTTP状态码
⽣产场景常见的状态吗及其对应的作⽤
HTTP协议通信原理过程,整个通信原理的重要知识点有:
1. ⽤户访问⽹站的流程
2. DNS解析流程细节
3. 建⽴TCP连接过程(TCP/IP三次握⼿原理知识)(11种状态)
4. 发送HTTP报⽂及HTTP请求报⽂内容细节。
5. Web服务器响应客户端请求处理细节(⽹站集架构细节)
6. 响应HTTP报⽂及HTTP响应报⽂的细节
7. 关闭TCP连接,涉及TCP/IP协议四次挥⼿原理
8. 事实上,DNS解析原理,http协议原理,tcp/ip协议原理都是⾼薪⾯试的重点,是⾼级运维必备知识,这⾥对其中的重要知识点进⾏汇总,如下:
9.
10. http协议位于OSI模型中第7层应⽤层
11. http协议的重要应⽤是www服务。
12. ⽤户上⽹流程,DNS解析原理流程
13. DNS解析获取的IP后,建⽴TCP连接,然后发送http请求细节和服务器响应细节。
14. HTTP请求报⽂与HTTP响应报⽂知识
15. 到达HTTP服务后请求后端集节点流程为Nginix-->fastcgi-->PHP-->(数据库,存储等)
16. TCP/IP协议三次握⼿和四次挥⼿原理。
媒体类型
互联⽹上的数据有很多不同的数据类型,Web服务器会把通过Web传输的每个对象都打上名为MIME类型(MIME Type)的数据格式标签。最初涉及MIME(Multipurpose Internet Mail Extension 多⽤途因特⽹邮件扩展)是为了解决在不同的电⼦邮件系统之间搬移报⽂时存在的问题。MIME在电⼦邮件系统中⼯作的⾮常好,后来,HTTP也⽀持了这个功能,⽤它来把数据描述并标记不同的数据内容类型。
当Web服务器响应HTTP请求时,会为每⼀个HTTP对象数据加⼀个MIME类型,当Web浏览器获取到服务器返回的对象时,会去查看相关的MIME类型,进⾏相应处理。
MIME类型存在于HTTP响应豹纹的响应头部信息⾥,它是⼀种⽂本标记,表⽰⼀种主要的对象类型和⼀个特定的⼦类型,中间由⼀条斜杠来分隔。
⽹页语⾔
html语⾔:决定⽹页都有什么些什么内容
CSS语⾔:控制⽹页内容的位置和特效
JS语⾔=javascript:控制动作
URL介绍
⽤户发起的请求,就叫⽤户发起了URL
所谓的⽹址就是URL
⽹址=域名+资源位置(URI)
URL=域名+URI
URL,全称Uniform Resource Location,中⽂翻译为统⼀资源定位符,也被称为⽹页地址(⽹址)。如同在⽹络上的门牌,它是因特⽹上标准的资源唯⼀地址。通俗地说,URL是Internet上⽤来描述信息资源的字符串,主要⽤在各种WWW客户端和服务器程序上。采⽤URL可以⽤⼀种统⼀的格式来描述各种信息资源,包括⽂件,服务器的地址和⽬录等。严格的说,每个URL都是⼀个URI,它标识⼀个互联⽹资源,并指定对其进⾏操作或取得该资源的⽅法。
URL的格式由下列三部分组成:
第⼀部分是协议,例如:http
第⼆部分是主机资源服务器IP地址或域名(端⼝号),例如:www.baidu
第三部分是主机资源的具体地址,如⽬录和⽂件名等,例如:yunjisuan/index.html
提⽰:
第⼀部分和第⼆部分之间⽤“://”符号隔开,第⼆部分和第三部分⽤"/"符号隔开。第⼀部分和第⼆部分是不可缺少的,第三部分可以省略。
URI介绍
URI,全称Uniform Resource Identifier,中⽂翻译为统⼀资源标识符,是⼀个⽤于标识某⼀互联⽹资源名称的字符串。这个字符串在世界范围内唯⼀标识并定位某⼀个信息资源。互联⽹上每个可⽤的数据资源,如HTML,图⽚,视频等皆通过统⼀资源标识符进⾏定位。
URL是URI命名机制的⼀个⼦集
静态⽹页资源
在⽹站设计中,纯粹HTML格式的⽹页(可以包含图⽚,视频,JS(前端功能实现),CSS(样式)等)通常被称为“静态⽹
页”,早期的⽹站⼤多都是静态的。静态⽹页是相对于动态⽹页⽽⾔的,是指没有后台数据库,不含程序(如php,jsp,asp)和可交互的⽹页。
静态⽹页资源特点
静态⽹页资源的特点是,开发者编写的是什么,它显⽰的就是什么,⼀旦编写完成,就不会有任何改变。静态⽹页的维护和更新相对⽐较⿇烦,每个不同的⽹页都需要单独编集更新,静态⽹页⼀般适⽤于更新较少的宣传展⽰型⽹站(例如:酒,家具,猪饲料等的宣传⽹站),是早期很多中⼩⽹站展⽰的形式。
静态⽹页资源的对应程序及资源⽂件的常见扩展名为:
1. 纯⽂本类程序或⽂件,如htm,html,xml,shtml,js,css等
2.
3. 图⽚类⽂件或数据⽂档,如jpg,gif,png,bmp,txt,doc,ppt等
4.
5. 视频类流媒体⽂件,如mp4,swf,avi,wmv,flv等
静态⽹页资源重要的特征
1. 每个⽹页都有⼀个固定的URL地址,且URL⼀般以.html,.html,shtml等常见形式为后缀,⽽且地址中不含邮问号“?”或“&”等特殊符号。
2.
3. ⽹页内容⼀经发布到⽹站服务器上,⽆论是否有⽤户访问,每个⽹页的内容都是保存在⽹站服务器⽂件系统上的,也就是说,静态⽹页是实实在在保存在服务器上的
⽂件实体,每个⽹页都是⼀个独⽴的⽂件。
4.
5. ⽹页内容是固定不变的,因此,容易被搜索引擎收录(容易被⽤户到)(优点)
6.
7. ⽹页没有数据库⽀持,在⽹站制作和维护⽅⾯⼯作量较⼤,因此当⽹站信息量很⼤时完全依靠静态⽹页制作的⽅式⽐较困难(缺点)
8.
9. ⽹页的交互性较差,在程序功能实现⽅⾯有较⼤的限制(缺点)
10.
11. ⽹页程序在⽤户浏览器端解析,如IE浏览器,程序解析效率很⾼,由于服务端不进⾏解析,并且不需要读取数据库,因此服务器端可以接受更多的并发访问。当客户
端向服务器请求数据时,服务器直接把数据从磁盘⽂件系统上返回(不做任何解析),待客户端拿到
数据后,在浏览器端解析展现出来(优点)
⽹站静态页⾯的特点就相当于在餐馆吃⽕锅,餐馆把原材料和⼯具都给你准备好,你⾃⼰只需要涮着吃就⾏,不需要饭店⼤厨给你炒菜做菜了,因此,对于饭店来讲,服务顾客的效率⼤⼤提⾼了。⽽对于静态页⾯来讲就是不需要服务器端解析,因此提供⽹站⽅服务器的压⼒也⼤⼤减轻了。
静态⽹页语⾔
常见的静态⽹页语⾔有html,js,css,xml,shtml等。
静态⽹页的核⼼特点
程序在客户浏览器端解析,不读取后端数据库,因此性能和效率很⾼。
因为后端没有数据库⽀持,所以和⽤户的交互性较差,功能实现也很少。
静态⽹页的架构思想
在⾼并发,⾼访问量的场景下做架构优化,涉及的关键环节就是把动态⽹页转成静态⽹页,⽽不直接请求数据库和动态服务器,并且可以把静态内容推送到前端缓存(或CDN)中提供服务,这样就可以提升⽤户体验,节约服务器和维护成本。
动态⽹页资源
所谓的动态⽹页是与静态⽹页相对⽽⾔的,也就是说,动态⽹页的URL后缀不是.htm,.html,.shtml,.xml,.js,.css等静态⽹页的常见后缀扩展名形式,⽽是以.asp,.aspx,.php,.js,.do,.cgi等形式作为后缀的,并且⼀般在动态⽹页⽹址中会有标志性的符号-
-“?,&”,此外,在⼤多数情况下后端都需要有数据库⽀持等。
动态⽹页资源特点
1)⽹页扩展名后缀常见为:.asp,.aspx,.php,.jsp,.do,cgi等
2)⽹页⼀般以数据库技术为基础,⼤⼤降低了⽹站维护的⼯作量
3)采⽤动态⽹页技术的⽹站可以实现更多的功能,如⽤户注册,⽤户登录,在线调查,投票,⽤户管理,订单管理,发博⽂等等
4)动态⽹页并不是独⽴存在于服务器上的⽹页⽂件,当⽤户请求服务器上的动态程序时,服务器解析这些程序并可能读取数据库返回⼀个完整的⽹页内容。
5)动态⽹页中的“?”在搜索引擎的收录⽅⾯存在⼀定问题,搜索引擎⼀般不会从⼀个⽹站的数据库中访问全部⽹页,或者出于技术等⽅⾯的考虑,搜索蜘蛛⼀般不会去抓去⽹址中“?”后⾯的内容,因此在企业通过搜索引擎进⾏推⼴时,需要针对采⽤动态⽹页的⽹站做⼀定的技术处理(伪静态技术),以便适应搜索因穷的抓取要求。
6)程序在服务器端解析,这相当于顾客点餐,饭店厨师做饭做菜,耗时长,效率低。由于程序在服务端解析,因此,会消耗⼤量的CPU和内存,I/O等资源,并且多数还要读取数据库等服务,因此,其访问效率远不如静态⽹页,在服务端解析动态程序的服务常见的有PHP引擎,Java容器(tomcat,resin,jboss,weblogic)
有关动态⽹页的架构思想
⼀般来说,静态⽹页的性能效率是动态⽹页的10~30倍。且动态⽹站效率很差,并发能⼒也很低,在⾼并发场景中,应尽可能转
换成静态⽹页提供服务。动态转静态⼏乎是所有⾼并发⽹站必备的架构⽅案思路,也是⾼级架构师的职责所在。
此外,动态转静态也要根据业务需求设计,例如,对于更新频繁的⽹站如果设计不好就可能会产⽣数据不⼀致的情况,即⽤户看到的数据不是⽹站最新的内容,⽽是静态的内容。
⽹站流量度量术语
IP(internet Protocol)
IP(独⽴IP)即Internet Protocol,这⾥指独⽴IP数,独⽴IP数是指不同IP地址的计算机访问⽹站时被计算的总次数。独⽴IP数是衡量⽹站流量的⼀个重要指标。⼀般⼀天内(00:00 - 24:00)相同IP地址的客户端访问⽹站页⾯只被计算为⼀次,记录独⽴IP的时间可为⼀天或⼀个⽉,⽬前通⽤的标准为“⼀天”。
假设有部分同学同时在某处的局域⽹中打开了www.baidu,请问对于百度来说⽹站是⼏个独⽴IP?答:是⼀个独⽴IP。这是因为,国内⼏乎所有的公司都是采⽤局域⽹共享上⽹的,即通过路由器NAT地址转换上⽹,每个计算机在局域⽹内的私有IP是不同的,但是在外⽹上,就必须都要由路由器把每个私⽹地址转换成了路由器接⼝的固定公⽹IP(多IP映射暂不考虑),所以说,对于⽹站来说⼀天内多个相同公司的IP的客户端访问计算为⼀个独⽴IP
再假设⼀个客户端⽤户通过ADSL等直接拨号上⽹,但是上⽹的时候偶尔掉线,⼀共重新拨号了3次(相近时间重新拨号IP相同的⼏率是极少的),然后每次都继续打开百度的⽹页地址,请问此时,⽹站独⽴IP数是多少?还是⼀个独⽴IP
由此可见,通过独⽴iP数度量⽹站访问量,和实际的访问情况不是很匹配。国内的企业,学校⼤多数使⽤的NAT上⽹的,⼀个独⽴IP背后可能有数⼗上百个客户端访问。独⽴IP数虽然不是很准,但却是IT技术⼈员⽐较关⼼的⼀个衡量⽹站的指标。
特效资源网
PV(Page View)
PV(访问量)即Page View,中⽂翻译为页⾯浏览,即页⾯浏览器或点击量,不管客户端是不是相同,也不管IP是不是相同,⽤户每次访问⼀个⽹站页⾯都会被计算⼀个PV。
PV的具体度量⽅法就是从客户浏览器发出⼀个对Web服务器的请求(Request),Web服务器接到这个请求后,将该请求对应的⼀个⽹页(Page)发送给浏览器,就产⽣⼀个PV。这⾥有⼀个问题,就是只要这个请求发送给了浏览器,⽆论这个页⾯是否完全打开(或下载完成),那么都是会被计数为1个PV(服务器⽇志),⼀般为了防⽌⽤户快速刷PV,很多⽹站把PV的统计程序放在页⾯的最下⾯。
⽤PV衡量⽹站时,PV数反映的是浏览某⽹站的页⾯数量,每刷新⼀次页⾯也算⼀次。因此,可以说PV数与来访⽤户的数量成正⽐,但PV数并不是真正的页⾯来访者数量,⽽是⽹站被访问的页⾯数量,因为⼀个来访者可能产⽣多个PV。
UV(Unique Visitor)
UV(独⽴访客)即Unique Visitor,同⼀台客户端(PC或移动端)访问⽹站被计算为⼀个访客。⼀天(00:00-24:00)内相同的客户端访问同⼀个⽹站只计算⼀次UV。UV⼀般是以客户端Cookie等技术作为统计依据的,实际统计会有误差。
考虑到⼀台客户端电脑可能会有多⼈使⽤的情况,因此,UV(独⽴访客)实际上并不⼀定是独⽴的⾃然⼈访问。
1.http请求报⽂:浏览器版本,OS
2.http响应报⽂:cookie(id)
并发连接
理解:⽹站服务器在单位时间内能够处理的最⼤连接数。
统计并发数的基本⽅法
统计当下时刻的linux的⽹络连接数并发,netstat -an|grep -i “est”|wc -l
nginx web 层 active status

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。