HTTP报文
1.用于Http协议交互的信息称为HTTP报文。请求端的http报文叫做请求报文,响应端的叫做响应报文。
2.HTTP报文大致可分为报文首部和报文主体俩部分
3.请求报文和响应报文结构
请求报文包含四部分:
a、请求行:包含请求方法、URI、HTTP版本信息
b、请求首部字段:包含表示请求的各种条件和各类首部
c、空行
d、请求内容实体(请求数据)
响应报文包含四部分:
a、状态行:包含HTTP版本、状态码、状态码的原因短语
b、响应首部字段:包含表示响应的各种条件和各类首部
c、空行
d、响应内容实体(响应数据)
4.编码提升传输速率
HTTP在传输数据时可以按照数据原貌直接传输,也可以在传输过程中通过编码来提升传输速率。编码需要计算机来完成,所以会消耗cpu资源
报文实体和实体主体的区别
HTTP报文德智体用于传输请求或响应的实体主体
5.压缩传输编码
http中的内容编码类似于zip压缩文件,指明应用在实体内容上的编码格式,保持实体信息原样压缩。客户端接收并解码
常见的内容编码 gzip compress deflate identity
6.分割发送的分块传输编码
请求的编码实体资源尚未全部传输完成之前,浏览器无法显示请求页面。在传输大容量数据时,通过把数据分割成多块,能够让浏览器逐步显示页面
7.状态码
常见的HTTP响应状态码**
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
200:请求被正常处理
204:请求被受理但没有资源可以返回
206:表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求,响应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向(可以用来做网址劫持)
303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
304:发送附带条件的请求时,条件不满足时返回,与重定向无关
307:临时重定向,与302类似,只是强制要求使用POST方法
400:请求报文语法有误,服务器无法识别
401:表示发送的请求需要有通过HTTP认证的认证信息。
403:对请求资源的访问被服务器拒绝了
404:服务器无法找到对应资源,url可能不正确
500:服务器内部错误,可能存在bug
503:表明服务器暂时处于超负荷或正在进行停机维护,现在无法处理请求。
8.与HTTP协作的Web服务器
单台虚拟机实现多个域名
代理 具有转发功能,攀岩服务器与客户端中间人的角色
网关 转发其他服务器通信数据的服务器
隧道 在相隔甚远的客户端和服务器俩者之间进行中转,并保持双方通信连接
HTTP通信时,除了客户端和服务器以外,代理,网关和隧道配合服务器工作,用户通信数据转发
9.保存资源的缓存
缓存是指代理服务器或客户端本地磁盘内保存的资源副本。
缓存服务器是代理服务器的一种,并归类在缓存代理类型中.当代理转发从服务器返回的响应时,代理服务器将会保存一份资源副本
10.客户端的缓存 临时网络文件
浏览器缓存如果有效,就不必再向服务器请求相同的资源,可以从本地磁盘内读取。但是也有有效期
11.首部字段结构
首部字段由首部字段名和字段值构成,中间用冒号“:”分割
首部字段名:字段值
首部字段类型
根据实际用途分为以下4种类型
通用首部字段:请求报文和响应报文俩方都会使用的首部
请求首部字段:从客户端向服务端发送请求报文时使用的首部
响应首部字段:从服务端向客户端返回响应报文时使用的首部
实体首部字段:针对请求报文和响应报文的实体部分使用的首部