一.初识HTTP协议
1.初识HTTP
- HTTP是指Hyper Text Transfer Protocol(超文本传输协议)
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可扩展
- 无状态 (具体情况可以查看下图:)
2.协议分析
协议分析——发展
如下图所示:
(1)HTTP/0.9 单行协议
- 请求GET/mypage.html
- 响应只有HTML文档
(2)HTTP/1.0 构建可扩展性
- 增加了Header
- 有了状态码
- 支持多种文档类型
...
(3)HTTP/1.1 标准化协议
- 链接复用
- 缓存
- 内容协商
...
(4)HTTP/2 更优异的表现
- 二进制协议
- 压缩header
- 服务器推送
...
(5)HTTP/3 草案
协议分析——报文
如下图所示:
- Safe(安全的):不会修改服务器的数据的方法
- Idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的。
状态码
如下图所示:
RESTful API
*一种API设计风格
*REST——Representational State Transfer
(1)每一个URI代表一种资源
(2)客户端与服务器之间,传递这种资源的某种表现层
(3)客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态转化”
常用请求头
具体情况如下图所示:
常用响应头
具体情况如下图所示:
缓存
强缓存 和 协商缓存
缓存的流程图为:
cookie
在协议分析——发展中,HTTP/2概述:更快 、 更稳定 、 更简单
- 帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
- 二进制
- 消息:与逻辑请求或响应消息对应的完整的一系列帧
- 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息
- 交错发送,接收方重组织
- HTTP/2连接都是永久的,而且仅需要每个来源一个连接
- 流控制:组织发送方向接收方发送大量数据的机制
HTTPS概述:
- HTTPS: Hypertext Transfer Protocol Secure
- 经过TSL/SSL加密
- 对称加密:加密和解密都是使用同一个密钥
- 非对称加密,加密和解密需要使用两个不同的密钥:公钥和私钥