golang,go,博客,开源,编程

把 https 改成 http带宽减少了 70%

Updated on with views and comments

把 HTTPS 改成 HTTP 后,带宽减少了 70%,这个现象主要是由以下几个原因引起的:

1. HTTPS 增加的加密开销

  • 加密与解密:HTTPS 是基于 TLS(传输层安全)协议的,它在通信过程中会对数据进行加密和解密。这意味着每一次请求和响应都需要进行额外的计算和内存消耗,用来加密发送的数据和解密接收到的数据。由于加密和解密操作消耗一定的计算资源,HTTPS 请求在传输数据时通常会比 HTTP 更加复杂。
  • TLS 握手:HTTPS 在每次建立连接时需要进行一次 TLS 握手,这个过程涉及到密钥交换、证书验证等操作,需要额外的数据交换和计算开销。尤其是对于非持久连接(每次请求建立新连接的情况),握手过程会增加额外的带宽消耗。

2. 数据包大小

  • HTTP 直接传输明文数据,没有加密和签名过程,因此数据本身相对较小。
  • HTTPS 会将数据加密,这意味着传输的每个数据包通常会比相同的 HTTP 数据包要大。加密的数据包通常包含了额外的元数据,例如填充数据、加密的头信息等,这些都导致了加密后数据包的大小增大,尤其是在高频繁的小数据包的请求中,这个开销会比较显著。

例如:

  • HTTP 请求 可能只包含你实际需要传输的数据,比如 JSON 数据。
  • HTTPS 请求 除了原有数据外,还需要包含加密后的数据、TLS 握手的记录、证书等,这些都会增加数据传输的总量。

3. TCP 连接与持久连接

  • HTTP/1.x:传统的 HTTP/1.x 通常是非持久连接,意味着每个请求和响应都需要单独的 TCP 连接,增加了网络延迟和带宽消耗。而 HTTPS 同样需要建立 SSL/TLS 加密连接。
  • HTTP/2:HTTP/2 引入了多路复用、头部压缩等技术,能够通过同一个 TCP 连接并行传输多个请求和响应,优化了带宽利用效率。但即使在 HTTP/2 中,HTTPS 仍然会有加密和解密开销,因此带宽利用率不如 HTTP。

4. TLS 握手和加密算法的效率

  • TLS 握手过程中的数据交换:在每次建立 HTTPS 连接时,客户端和服务器需要交换密钥和证书信息,这个过程会产生额外的数据开销。尽管在 HTTP/2 中有保持连接的机制,但每次进行新的连接时,仍然需要执行握手,这会带来性能损失。
  • 加密算法的效率:加密算法(例如 AES、RSA、ECC)在处理大数据时可能会引起额外的延迟,尤其是在 CPU 性能不高的设备上,可能会导致加密和解密的过程成为瓶颈,进一步影响带宽的利用率。

5. HTTP/2 与 HTTPS

  • 虽然 HTTP/2 在性能上相较 HTTP/1.x 有了显著改进,但 HTTP/2 要求加密(即 HTTPS)。在一些情况下,由于 HTTPS 的加密开销,HTTP/2 的优势可能会被削弱,尤其是在加密层的性能成为瓶颈时。
  • 头部压缩:HTTP/2 引入的头部压缩技术(HPACK)有助于减少传输的冗余信息,但由于 TLS 协议的限制,这种压缩技术在加密数据中的表现可能不如明文 HTTP 中的效果显著。

总结:

  • 加密开销:HTTPS 因为加密和解密过程的存在,会增加额外的计算和带宽消耗。
  • TLS 握手:每次建立 HTTPS 连接时都会涉及到握手,这增加了带宽消耗,尤其是在短时间内频繁建立新连接时。
  • 数据包大小:HTTPS 数据包较 HTTP 数据包大,带来了额外的带宽负担。
  • 性能瓶颈:加密算法的效率问题也可能会影响 HTTPS 的性能,使得其相较于 HTTP 的带宽使用更低。

解决方案和优化:

  1. 开启 HTTP/2:如果你只关心带宽和性能,并且不关心安全性问题,可以使用 HTTP/2,它可以改善带宽利用效率,尤其是在请求数较多时。但这仍然需要 HTTPS 支持。
  2. 优化加密性能:如果必须使用 HTTPS,可以通过使用更高效的加密算法(例如 elliptic curve cryptography)或者启用硬件加速来降低加密解密的开销。
  3. 减少 TLS 握手次数:可以通过持久连接和连接复用来减少握手过程带来的开销。例如,可以使用 HTTP/2 或保持长连接来减少握手的频率。

尽管 HTTPHTTPS 在带宽消耗上有所差异,通常建议在现代应用中使用 HTTPS,因为它提供了加密、身份验证和数据完整性保护,是确保数据安全的基本保障。


标题:把 https 改成 http带宽减少了 70%
作者:mooncakeee
地址:http://blog.dd95828.com/articles/2025/01/07/1736229140684.html
联系:scotttu@163.com