Skip to content

版本

http 0.9

http 1.0

  • MIME type: 内容格式扩充
  • 增加请求头、响应头的概念, 以及协议版本号、状态码、缓存、内容编码等
  • 新增 POST、DELETE、PUT、HEAD 请求方式

http 1.1

  • 管线化(并行请求)
  • 长连接
  • 缓存
  • 断点传输

http2

  • 多路复用: 可以在单个连接上同时处理多个请求和响应, 解决了队头阻塞问题, 提高了并发性能
  • 二进制分帧: http2 将传输信息分割成更小的消息和帧, 并做了二进制编码, 二进制格式解析更高效, 减少了解析复杂文本格式的开销
  • 头部压缩: http2 使用 HPACK 算法对请求和响应头进行压缩, 减少了传输数据大小
  • 服务端推送: 支持服务端主动向客户端推送资源, 不需要客户端显示请求, 可以减少客户端请求数量

HTTPS

HTTPS 是超文本传输安全协议, 基于HTTP协议, 使用 TLS/SSL 协议加密数据

TLS 握手过程

  1. 客户端发出请求
  • 支持的协议版本, 比如 TLS 1.2
  • 客户端生成的随机数
  • 支持的加密方法, 比如 RSA 公钥加密
  • 支持的压缩方法
  1. 服务端响应
  • 确认使用的加密通信协议版本
  • 服务端生成的随机数, 稍后用于生成 对话密钥
  • 确认加密方法
  • 服务器证书
  1. 客户端回应
  • 一个随机数, 用服务器公钥加密
  • 编码改变通知, 随后的信息使用协商好的加密方法和密钥发送
  • 握手结束通知

三个随机数能增加解密难度, 一个伪随机可能完全不随机, 可是是三个伪随机就十分接近随机了

  1. 服务端的最后回应

服务端收到客户端的第三个随机数之后, 计算生成本次会话所用的 会话密钥

  • 编码改变通知
  • 服务器握手结束通知

随后客户端和服务器进入加密通信

Released under the MIT License.