HTTP 1.0、1.1、2.0、HTTPS 协议的特性及区别
HTTP(Hypertext Transfer Protocol)是用于传输超文本的应用层协议,它被用于在客户端和服务器之间传输和呈现超文本。
HTTP 1.0:
- 特性:
- 使用明文传输数据,不提供数据加密。
- 请求-响应模型,每个请求都需要服务器单独响应。
- 不支持持久连接,每个请求/响应都需要建立新的 TCP 连接。
- 无法复用连接,每个请求都会在单独的连接上处理。
- 不支持请求的优先级,请求之间平等对待。
- 缺点:
- 性能较差,多次连接建立和拆除的开销。
- 安全性差,数据明文传输容易被窃听和篡改。
- 特性:
HTTP 1.1:
- 特性:
- 引入持久连接,减少了连接的建立和拆除开销。
- 引入请求的优先级,可以根据需求标识请求的优先级。
- 支持管道化,允许多个请求/响应在一个连接上同时处理。
- 引入分块传输编码,允许数据分块传输。
- 缺点:
- 依然使用明文传输,存在安全风险。
- 性能提升有限,管道化和请求优先级的支持不够强大。
- 特性:
HTTP 2.0:
- 特性:
- 使用二进制格式传输数据,减少了传输数据的开销。
- 多路复用,多个请求/响应可以在一个连接上同时处理。
- 头部压缩,减少了头部信息的传输开销。
- 服务器推送,服务器可以在客户端请求之前主动推送数据。
- 支持数据流优先级,可以更好地管理多个数据流。
- 缺点:
- 需要 HTTPS,否则不支持。
- 需要现代的服务器和客户端支持。
- 特性:
HTTPS:
SSL(Secure Sockets Layer)译为「安全套接字协议」,TLS(Transport Layer Security)译为「传输层安全性协议」。
SSL/TLS 协议处于「传输层」和「应用层」之间,主要作用是对网络连接进行加解密,如下图:SSL/TLS 四次握手:
- 客户端向服务端所有证书。
- 服务端发送证书。
- 客户端验证证书,提取公钥,发送对称加密的密钥。
- 服务端收到密钥,响应 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 提供了更高级别的安全性,通过加密和身份验证来保护数据。