(感谢老男孩优秀学员笔记分享)
1、HTTP协议介绍
1)HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。 HTTP的重要应用之一是 WWW服务。设计 HTTP协议最初的目的就是提供一种发布和接收HTML (一种页面标记语言)页面的方法。
HTTP协议是互联网上常用的通信协议之一。它有很多的应用,但最流行的就是用于Web浏览
器和Web服务器之间的通信,即WWW应用或称Web应用。
www ,全称World Wide Web ,常称为Web ,中文译为"万维网:它是目前互联网上最受用户欢迎的信息服务形式。 HTTP协议的WWW服务应用的默认端口为80,另外一个加密的WWW服务应用https的默认端口为443,主要用于网银、支付等和钱相关的业务。当今,HTTP服务、WWW服务、Web服务三者的概念已经混淆了,都是指当下最常见的网站服务应用。
2)HTTP协议版本
HTTP/1.0 规定浏览器和服务器只保持短暂的连接(TCP短链接)
HTTP/1.1 支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和时间延迟(TCP长连接)
2、HTTP协议原理过程
在linux系统中查看报文的方法
curl -v ##显示访问域名请求报文与相应报文信息
[root@www opt]# curl -v www.baidu.com
* About to connect() to www.baidu.com port 80 (#0)
* Trying 104.193.88.77...
* Connected to www.baidu.com (104.193.88.77) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.baidu.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: Keep-Alive
< Content-Length: 2381
< Content-Type: text/html
< Date: Sun, 10 Feb 2019 12:53:32 GMT
< Etag: "588604ec-94d"
< Last-Modified: Mon, 23 Jan 2017 13:28:12 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
.........
1)响应http请求方法
HTTP方法 | 作用描述 |
---|---|
GET | 客户端请求指定资源信悤,服务器返回指定资源 |
HEAD | 只请求响应报文中的 HTTP首部 |
POST | 将客户端的数据提交到服务器,例:注册表单 |
PUT | 用从客户端向服务器传送的数据取代指定的文档内容 |
DELETE | 请求服务器删除 Request-URI所表示的资源 |
MOVE | 请求服务器将指定的页面移至另一个网络地址 |
2)http的请求过程
请求头信息说明
3)http响应过程
4)响应头信息说明
响应头 | 说明 |
---|---|
Server | 服务器应用程序软件的名称和版本 |
Content-Type | 响应正文的类型(是图片还是二进制字符串) |
Content-Length | 响应正文长度 |
Content-Charset | 响应正文使用的编码 |
Content-Encoding | 响应正文使用的数据压缩格式 |
Content-Language | 响应正文使用的语言 |
3、HTTP协议的状态码
HTTP状态码(HTTP Status Code )是用来表示Web服务器响应HTTP请求状态的数字代码。每当Web客户端向Web服务器发送一个HTTP请求时,Web服务器都会返回一个状态响应代码。这个状态码是一个三位数字代码,作用是告知Web客户端此次请求是否成功,或者是否要采取其他的动作方式。
1)不同范围的状态码及其对应的作用
状态码范围 | 作用描述 |
---|---|
100 - 199 | 用于指定客户端相应的某些动作 |
200 - 299 | 用于表示请求成功 |
300 - 399 | 用于己经移动的文件,并且常被包含在定位头信息中指定新的地址系信息 |
400 - 499 | 用于指出客户端的错误 |
500 - 599 | 用于指出服务端的错误 |
2)常见的状态码
代码 | 代码说明 |
---|---|
200 | 请求成功 |
301 Moved Permanently(永久跳转) | 请求的网页已永久跳转到新位置 |
302 | 请求资源临时重定向 |
401 | 客户端请求需要在服务器端进行认证 |
403 Forbidden(禁止访问) | 服务器拒绝请求 |
404 - Not Found | 服务器找不到请求的页面 |
500 | 内部服务器错误 |
502 | 坏的网关,一般是网关服务器请求后端服务时,后端服务没有按照http协议正确返回结果 |
503 - Service Unavailable(服务当前不可用) | 可能因为超载或停机维护 |
504 - Gateway Timeout(网关超时) | 一般是网关服务器请求后端服务时,后端服务没有在特定的时间内完成服务 |
4、HTTP资源
媒体资源
互联网上的数据有很多不同的类型,Web服务器会把通过Web传输的每个对象都打上MIME类型(即MIME type)的数据格式标签。最初设计MIME(Multipurpose Internet Mall Extension,多用途因特网邮件扩展)是为了解决在不同的电子邮件系统之间搬移报文时存在的问题.MIME在电子邮件系统中工作得非常好。后来,HTTP也支持了这个功能,用它来描述数据并标记不同的数据内容类型。
当Web服务器响应HTTP谪求时,会为每一个HTTP对象数据加一个MIME类型,当Web浏览器获取到服务器返回的对象时,会去査看相关的MIME类型,并进行相应处理。
MIME类型存在与HTTP响应报文的响应头部信患里,它是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分割。
1)MIME媒体资源
web服务可以处理的资源类型,根据扩展名进行识别(html css mp4)
2)URL/URI
URL:全称为Uniform Resource Location,中文翻译为统一资源定位符
URI:全称为Uniform Resource Identifier,中文翻译为统一资源标识符
URN:统一资源名称 (Uniform Resource Name, URN),是URI两种形式之一。
QPS: 每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。可以理解在server中有个counter,每处理一个请求加1,1秒后counter=QPS。
TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。
并发量:系统能同时处理的请求数
RT:响应时间,处理一次请求所需要的平均处理时间
计算关系:
QPS = 并发量 / 平均响应时间
并发量 = QPS * 平均响应时间
例如:
网址: http://reg.jd.com/reg/person?ReturnUrl=https%3A//www.jd.com/
http://reg.jd.com --- 称为url
/reg/person?ReturnUrl=https%3A//www.jd.com/ --- 称为uri
3)网页资源种类:
静态网页资源
动态网页资源
伪静态网页资源
3.1 静态网页资源
请求响应信息,发给客户端进行处理,由浏览器进行解析,显示的页面称为静态页面
在网站设计中,纯粹HTML格式的网页(可以包含图片、视频JS (前端功能实现)、CSS (样式)等)通常被称为"静态网页"
静态页面资源特征:
-
处理文件类型:如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等-
-
地址中不含有问号"?"或&等特殊符号。
-
保存在网站服务器文件系统上的,是实实在在保存在服务器上的文件实体
-
网页内容是固定不变的,因此,容易被搜索引擎收录
-
网页页面交互性交差,因为不能与数据库配合
-
网页程序在用户浏览器端解析,当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不做任何解析)
优势:
-
访问的效率比较高
-
网页内容是固定不变的,因此,容易被搜索引擎收录
-
网页程序在用户浏览器端解析,当客户端向服务器请求数据时,服务器会直接从磁盘文件系统上返回数据(不做任何解析)
劣势:
-
网页页面交互性交差,因为不能与数据库配合
-
保存在网站服务器文件系统上的,是实实在在保存在服务器上的文件实体
3.2动态网页资源
所谓的动态网页是与静态网页相对而言的,也就是说,动态网页的URL后缀不是.html .htm、.xml、.shtml、.js css 等静态网页的常见扩展名形式,而是.asp、.aspx、.php、.js、.do、.cgi等形式
请求响应信息,发给服务端进行处理,由服务端处理完成,将信息返回给客户端,生成的页面称为动态页面
动态网页资源特点:
-
网觅扩展名后缀常见为:.asp、.aspx、.php、.js、.do、.cgi
-
网页页面交互性强,可以与数据库配合
-
地址中含有问号"?"或 & 等特殊符号
-
不便于被搜索引擎收录
优势:
1.客户端与服务端交互能力强
劣势:
1.访问的效率比较低
2.不便于被搜索引擎收录
3.3伪静态网页资源
将动态页面伪装成静态页面,便于被搜索引擎收录
将动态页面转换为静态页面的方式(rewrite 正则表达式)
将动态页面内容转换为静态页面,去掉动态页面uri地址中的? &字符,伪装成静态页面uri信息
动态转静态(开发来配合完成)
5、网站流量度量术语
1)独立IP数度量值
独立IP数是指不同IP地址的计算机访问网站时被计算的总次数
在一个局域网内多个主机进行访问相同的网站地址时,独立IP数记为多少?
一般一天内(00:00-24:00)相同IP地址的客户端访问网站页面只会被计一次
记录独立IP的时间可为一天或一个月,目前通用的标准为"一天"。
2)页面浏览次数PV
页面浏览量或点击量
3)独立访客数UV
根据http请求报文:浏览器版本,OS
根据http响应报文:cookie(id)
cookie(id) 将服务端的信息保存到客户端
session 将客户端信息保存到服务器
4)扩展知识
cookie和session区别
① cookie介绍说明
cookie 存放在浏览器缓存中—浏览器进行查看(谷歌)
【设置里面】—【显示高级设置】—【隐私设置】—【内容设置】—【所有cookie和内容设置】
PS:cookie的格式信息是由开发人员进行定义,所以不同的网站所生成的cookie信息内容不太一致
cookie 数据存放在客户的浏览器上
cookie 不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
cookie 不占用服务器端资源,提升了服务器性能
cookie 保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
② session介绍说明
session 存放在服务器的内存中
session 数据放在服务器上
session 从数据库的安全应用方面会更安全些
session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
③ 建议性说明:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中