HTTP/1.1#
特性
- 无状态:cookie
- 明文传输
性能:
- 持久连接:不需要重复TCP握手
- Pipeline:一次进行多个请求,必须按照发送的顺序接受
- 队头阻塞
HTTPS#
混合加密:非对称加密,加密对称密钥;对称密钥加密正文 摘要+签名:私钥加密正文哈希 数字证书:CA用私钥加密服务器公钥并签发数字证书
TLS 握手协议
- ClientHello:TLS版本,随机数,算法套件列表
- ServerHello:TLS版本,随机数,算法套件列表,数字证书
- 客户端回应:第三个随机数(pre-master key),之前内容摘要
- 服务器回应:摘要 TLS1.2:2RTT,TLS1.3:1RTT
记录协议
- 分割片段并压缩
- 加上消息认证码(MAC)
- 使用对称密码进行加密
- 加上报头:数据类型,版本号,长度
HTTP/2#
- 头部压缩:HPACK算法
- 二进制格式:头信息帧,数据帧
- 并发传输:流编号,一个TCP多个Stream,一个Stream多个message,一个Meaage多个帧
- 服务器主动推送
- TCP队头阻塞
HTTP/3(QUIC)#
- 无队头阻塞
- 更快的建立连接
- 连接迁移:没有使用TCP四元组,使用了连接ID
