HTTP 1.0、1.1、2.0、HTTPS 协议的特性及区别


HTTP(Hypertext Transfer Protocol)是用于传输超文本的应用层协议,它被用于在客户端和服务器之间传输和呈现超文本。

  1. HTTP 1.0

    • 特性
      • 使用明文传输数据,不提供数据加密。
      • 请求-响应模型,每个请求都需要服务器单独响应。
      • 不支持持久连接,每个请求/响应都需要建立新的 TCP 连接。
      • 无法复用连接,每个请求都会在单独的连接上处理。
      • 不支持请求的优先级,请求之间平等对待。
    • 缺点
      • 性能较差,多次连接建立和拆除的开销。
      • 安全性差,数据明文传输容易被窃听和篡改。
  2. HTTP 1.1

    • 特性
      • 引入持久连接,减少了连接的建立和拆除开销。
      • 引入请求的优先级,可以根据需求标识请求的优先级。
      • 支持管道化,允许多个请求/响应在一个连接上同时处理。
      • 引入分块传输编码,允许数据分块传输。
    • 缺点
      • 依然使用明文传输,存在安全风险。
      • 性能提升有限,管道化和请求优先级的支持不够强大。
  1. HTTP 2.0

    • 特性
      • 使用二进制格式传输数据,减少了传输数据的开销。
      • 多路复用,多个请求/响应可以在一个连接上同时处理。
      • 头部压缩,减少了头部信息的传输开销。
      • 服务器推送,服务器可以在客户端请求之前主动推送数据。
      • 支持数据流优先级,可以更好地管理多个数据流。
    • 缺点
      • 需要 HTTPS,否则不支持。
      • 需要现代的服务器和客户端支持。
  2. HTTPS
    SSL(Secure Sockets Layer)译为「安全套接字协议」,TLS(Transport Layer Security)译为「传输层安全性协议」。
    SSL/TLS 协议处于「传输层」和「应用层」之间,主要作用是对网络连接进行加解密,如下图:

    SSL/TLS 四次握手:

    1. 客户端向服务端所有证书。
    2. 服务端发送证书。
    3. 客户端验证证书,提取公钥,发送对称加密的密钥。
    4. 服务端收到密钥,响应 OK。

    HTTPS=HTTP+SSL/TLS

    • 特性
      • 基于 HTTP 协议,但使用 TLS/SSL 加密保护数据传输。
      • 提供数据的机密性和完整性,防止窃听和篡改。
      • 使用加密证书,验证服务器的身份。
      • 需要额外的计算和加密开销,对性能有一定影响。
    • 优点
      • 更高的安全性,数据加密传输。
      • 更可信的身份验证。
      • 保护用户隐私。

区别

  • HTTP 1.0 到 HTTP 1.1 的升级主要关注性能和复用连接,但仍然使用明文传输。
  • HTTP 2.0 引入了二进制传输、多路复用、头部压缩和服务器推送等特性,但需要使用 HTTPS。
  • HTTPS 是一种安全协议,它在 HTTP 的基础上增加了数据加密和身份验证,用于保护数据的安全性和完整性。

总之,HTTP 2.0 和 HTTPS 是在性能和安全性方面的较大改进,特别是 HTTP 2.0 引入了多路复用和头部压缩等功能,从而提高了性能。HTTPS 提供了更高级别的安全性,通过加密和身份验证来保护数据。

References

HTTP1.0、1.1、2.0 协议的特性及区别
HTTPS 是如何保证数据传输安全的?