HTTP协议|青训营

184 阅读2分钟

什么是HTTP协议

image.png HTTP是Hyper Text Transfer Protocol的缩写,直译为超文本传输协议,是应用层协议,基于传输层的TCP协议的传输协议

image.png

HTTP的每个请求都是孤立的,是无状态协议,由请求和响应两部分组成。

HTTP协议的发展过程

image.png

1.1版本使用时间最长,15年左右推出的2版本在原有基础上在传输方面进行了更快速更稳定的优化。

协议分析(以1.1版本为例)

image.png

大体结构是固定的,但是请求必须要在起始部分声明请求的方法和访问的目标地址;响应必须要给出处理的结果(状态码)

image.png

方法分类:

safe:不会修改服务器的数据的方法:GET HEAD OPTIONS

Idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的:GET HEAD OPTIONS PUT DELETE

状态码

1开头是指示信息,表示请求已接收,继续处理

2开头表示成功:200 OK-客户端请求成功

3开头需要重定向:

  • 301-资源被永久转移到其他URL
  • 302-临时跳转

4开头客户端出现错误:

  • 401-请求未经授权
  • 404-请求资源不存在,可能输入了错误的URL

5开头服务器出现错误:

  • 500-服务器内部发生了不可预计的错误
  • 504-Gateway Timeout-网管或者代理的服务器无法再规定时间内获得想要的响应
RESTful API

一种API设计风格

image.png

常用请求头

image.png

常用响应头

image.png

具体场景:缓存

缓存分为强缓存和协商缓存

强缓存是本地已存在可以直接使用,协商缓存是需要和server端进行通信验证,要进行协商过程

image.png 缓存流程

image.png

cookie

携带用户身份相关信息,以键值对形式存在,可以携带访问控制相关的字段,以及安全性相关字段

image.png

HTTP2版本

帧(frame):是该协议通信的最小单位,每个帧包含帧头,至少表示出当前帧所属的数据流,用二进制编码的形式传输

消息:是与逻辑请求或响应消息对应的完整的一系列帧

数据流:已建立的连接内的双向字节流,可以承载一条或多条消息

帧是可以交错发送不需要按照顺序,接收方再进行重组织

HTTP/2连接是永久的,仅需要每个来源一个连接

流控制:可以主动阻止发送方向接收方发送大量数据的机制

服务器推送:主动推送一些信息给客户端的能力

HTTPS

在HTTP的基础上进行加密,加密过程是对称加密和非对称加密混用

image.png