http协议
1. HTTP简介
HTTP:HyperText Transfer Protocol,超文本传输协议。互联网中最常用的一种网络协议(通信协议)。流行用于Web浏览器和Web服务器之间的通信,即WWW应用或称Web应用。最初的目的:提供一种发布和接收HTML页面的方法。最重要应用之一是WWW服务(默认端口80),另外一个加密的WWW服务应用https的默认端口为443,主要用于网银、支付等和钱相关的业务。
WWW:World Wide Web-------万维网,常称为Web。
2. HTTP协议版本
2.1 HTTP/1.0
增加了HTTP请求头,可支持更多的请求方法,并且能对多媒体对象进行处理。规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后即断开TCP连接,服务器不跟踪,也不记录请求。
2.2 HTTP/1.1
修复HTTP设计中的缺陷,从可扩展性、缓存处理、带宽优化、持久连接、host头、错误通知、消息传递、内容协商等多个方面都做了相关改进。
在连接方面,支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和时间延迟。
在请求头方面增加了更多的请求头和响应头信息,用以增强HTTP功能。
3.HTTP请求方法
客户端请求Web服务器时,告诉服务器要执行什么具体的动作。这些动作包括:获取指定Web页面、提交内容到服务器、删除服务器上的资源文件等,这些HTTP请求报文中包含的方法被称为HTTP请求方法。
常用HTTP请求方法:
HTTP方法 | 作用描述 |
---|---|
GET | 客户端请求指定资源信息,服务器返回指定资源,如正常浏览网页 |
HEAD | 只请求响应报文的HTTP首部 |
POST | 将客户端的数据提交到服务器,例:注册用户,上传图片、视频等 |
PUT | 将客户端向服务器传送的数据取代指定的文档内容 |
DELETE | 请求服务器删除Request-URI所识别的资源 |
MOVE | 请求服务器将指定的页面移至另一个网络地址 |
4.HTTP状态码
1)不同范围的状态码及其对应的作用
状态码范围 | 作用描述 |
---|---|
100-199 | 用于指定客户端 |
200-299 | 用于表示请求成功 |
300-399 | 用于已经移动的文件,并且常被包含在定位头信息中指定新的地址信息 |
400-499 | 用于指出客户端的错误 |
500-599 | 用于指出服务端的错误 |
2)生产场景常见的状态码及其对应的作用
状态代码 | 详细描述说明 |
---|---|
200-OK | 服务器成功返回网页,这是成功的HTTP请求返回的标准状态码 |
301-Moved Permanently | 永久转跳,所请求的网页将永久转跳到被设定的新位置,例如:从etiantian.org转跳到www.etiantian.org |
403-Forbidden | 禁止访问,虽然这个请求是合法的,但是服务器因为匹配了预先设置的规则而拒绝响应客户端的请求,此类问题一般为服务器或者服务权限配置不当所致 |
404-Not Found | 服务器找不到客户端的指定页面,可能客户端请求了服务器上不存在的资源所致 |
500-Internal Server Error | 内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的 请求。这是一个较为笼统的报错,一般为服务器的设置或内部程序问题导致。例如:SElinux开启(或者配置文件配置参数错误),而没有为HTTP设置规则许可,客户端访问就是500 |
502-Bad Gateway | 坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。这通常为反向代理服务器下面的节点出问题所致 |
503-Server Unavailable | 服务当前不可用,可能是服务器超载或停机维护所致的,或者是反向代理服务器后面没有可以提供服务的节点 |
504-Gateway Timeout | 网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求。多数是服务器过载导致没有在指定时间内返回数据给代理服务器 |
查看状态码:
查看响应头curl -I www.baidu.com
5.HTTP报文
HTTP报文可分为两种,一种是从Web客户端发往Web服务器的HTTP报文,称为请求报文(Request Message)。另外一种是从Web服务器发往Web客户端的报文,称为响应报文(Response Message),两种格式类似。
5.1 请求报文介绍
报文格式 | 报文信息 |
---|---|
请求行 | 请求方法URL协议版本 |
请求头 | 字段名1:值1 字段名2:值2… 例如: Accept: image/gif,image/jpeg Accept-Language:zh-cn… |
空行 | 空白无内容 |
请求报文主体 | GET方法没有请求报文主体,POST方法才有 |
(1)请求行
请求行是请求报文的第一行,用来说明客户端想要做什么。内容由请求方法字段、URL字段和HTTP协议版本字段共3个字段组成,它们之间用空格分隔。
下面以GET/index.html HTTP/1.1为例来说明请求报文的起始请求行信息详情。
请求方法字段示例 | URL字段显示 | HTTP协议版本 |
---|---|---|
GET | /ndex.html | HTTP/1.1 |
(2)请求头
请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部的作用是客户端把相关信息告诉给服务器,常见的请求头部如下:
请求头信息 | 说明 |
---|---|
Acceppt:image/gif,iimage/jpeg | 媒体类型 |
Accept-Language:zh-cn | 语言类型 |
Accept-Encoding:gzip,deflate | 支持压缩 |
User-Agent:Mozilla/4.0(compatible;MSIE 6.0 ; Windows NT;…) | 客户端类型 |
Host :www.etiantian.org | 主机名 |
(3)空行(表示请求头结束)
最后一个请求头部信息之后是一个空行,发送回车符和换行符,通知Web服务器空行以下不会有请求头部的信息了。
(4)请求报文主体
请求报文主体中包括了要发送给Web服务器的数据信息;请求报文主体不会应用于HTTP的GET命令方法,而是应用于POST方法。POST方法适用于需要客户填写表单的场合。(GET内容空,POST方法才会有内容)
HTTP 报文请求应答流程详图:
(浏览无主体)
5.2 响应报文介绍
HTTP响应报文由起始行、响应头部(header)、空行和响应报文主体几个部分组成,和HTTP请求报文格式类似。HTTP响应报文一般格式如下:
报文格式 | 报文信息 |
---|---|
起始行 | 协议及版本号、数字状态码、状态信息 |
响应报文头部 | 字段名1:值1 字段名2:值2 … 例如: Content-Type:text/html;charset=utf-8 Content-Length:78 |
空行 | 空白无内容 |
响应报文主体 | < html > < head > < title > oldboy’s blog < /title> < /head > < body > I am oldboy, mysql blog is http://oldboy.blog.51cto.com < /body> < /html > |
(1)起始行
响应报文的起始行也叫状态行,用来说明服务器响应客户端请求的状况。一般为协议及版本号、数字状态码、状态情况。例如:HTTP/1.1200OK。
(2)响应头部
和请求报文类似,起始行的后面一般有若干个头部字段。每个头部字段都包含一个名字和一个值,两者之间用冒号分隔。头部结尾也是以一个空行结束的。常见的头部信息如上表所示。
(3)空行
最后一个响应头部信息之后是一个空行,通过发送回车符和换行符,通知客户端空行下文无头部信息了。
(4)响应报文主体
响应报文主体中装载了要返回给客户端的数据。这些数据可以是文本,也可以是二进制的(如图片、视频),响应报文主体的html格式文本数据示例如上表所示。
6.HTTP资源
6.1 URL
Uniform Resource Location,统一资源定位符,也被称为网页地址(网址)。
6.2 URI
Uniform Resource Identifier,统一资源标识符,用于标识某一互联网资源名称的字符串。如同门牌一样,它是因特网上标准的资源唯一地址。
URL是URI命名机制的一个子集。
6.3 静态网络资源
在网站设计中,纯粹HTML格式的网页(可以包含图片、视频、JS(前端功能实现)、CSS(样式)等)通常被称为“静态网页”。
1.特点
1)每个页面都有一个固定的URL地址
2)网页内容一经发布到网站服务器上,无论是否有用户访问,每个网页的内容都是保存在网站服务器文件系统上的。
3)网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到)(优点)。
4)因为网页没有数据库的支持——>制作和维护方面的工作量较大
5)网页的交互性较差。
6)网页程序在用户浏览器端解析,程序解析效率很高
6.4动态网页资源
一般在动态网页网址中会有标志性的符号—“?,&”,此外,在大多数情况下后端都需要有数据库支持。
1.特点
1)网页扩展名后缀常见为:asp、.aspx、.php、jsp、.do、.cgi等。
2)网页一般以数据库技术为基础,大大降低了网站维护的工作量。
3)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、投票、用户管理、订单管理、发博文等。
4)动态网页并不是独立存在于服务器上的网页文件,当用户请求服务器上的动态程序时,服务器解析这些程序并可能通过读取数据库来返回一个完整的网页内容。
5)动态网页中的“?”在搜索引擎的收录方面存在一定的问题,搜索引擎一般不会从一个网站的数据库中访问全部网页,或者出于技术等方面的考虑,搜索蜘蛛一般不会去抓取网址中“?”后面的内容。
6.5 伪静态网页
- 利用rewrite技术将动态网页伪装成静态网页(URL地址改写)。
- 便于搜索引擎搜录,提升用户访问量及用户体验。
- 访问性能没有提升,并且转换成伪静态会消耗资源,因此性能反而会下降。 尽可能地将动态网页转换成真正的静态页面。
- 并发量不是很大或动态更新过于频繁时,用rewrite实现伪静态也是不错的。 伪静态网页的实现过程,一般由产品运营提出需求,开发和运维共同实现。
7.网站流量度量术语
7.1 IP
IP(独立IP),即Internet Protocol,这里指独立IP数,独立IP数是指不同IP地址的计算机访问网站时被计的总次数。多人通过一个局域网访问算一个IP。
7.2 PV
PV(访问量)即Page View,中文翻译为页面浏览,即页面浏览量或单击量,不管客户端是不是相同,也不管IP是不是相同,用户只要访问网站页面就会被计算PV,一次计一个PV。
7.3 UV
UV(独立访客)即Unique Visitor,同一个客户端(PC或移动端)访问网站被计为一个访客。一天内相同的客户端访问同一个网站只计一次UV。UV一般是以客户端 Cookie等技术作为统计依据的,实际统计会有误差。
7.4 企业对IP、PV、UV的度量
7.5 IP、PV、UV的区别
7.6 并发连接
网站服务器在单位时间内能够处理的最大连接数。
7.7 常见企业网站排名及PV/IP访问量
16年数据分析:
估计参考:
关于网站访问指标的计算,可以考虑:
-
运维部门日志分析。
-
开发在页面嵌入JS程序统计收集,分析。
-
运营市场通过第三方公司提供的工具程序统计,例如:GA统计。
-
网站流量统计工具软件 PWIKI awstats ELK收集日志。