HTTP(超文本传输协议)是一种应用层协议,用于在 Web 客户端与服务器之间交换信息。HTTPS(安全超文本传输协议)则是通过传输层安全协议(TLS)提供安全保护的 HTTP。 TLS 可以加密传输中的数据、帮助验证服务器身份,并检测传输数据是否遭到未经授权的篡改。
HTTP 与 HTTPS 的主要区别在于连接安全性: HTTP 本身不提供加密或服务器身份验证功能,而 HTTPS 通过 TLS 提供这些安全保护。现代公共网站、应用程序和 API 应默认使用 HTTPS。
什么是 HTTP?
HTTP 定义了浏览器或其他客户端如何请求资源,以及服务器如何响应这些请求。它用于传输网页、图像、API 响应及其他多种类型的内容。
HTTP 是一种无状态协议,这意味着每个请求都可以独立处理。不过,网站仍可通过 Cookie 和应用程序会话,在多个请求之间保持用户状态。
传统的 HTTP 连接不会对交换的信息进行加密。如果数据经过不可信的网络,中间方就可能读取或修改请求和响应内容。 HTTP 通常使用 TCP 80 端口,但也可以配置使用其他端口。
什么是 HTTPS?
HTTPS 保留了与 HTTP 相同的请求和响应机制,同时通过 TLS 对连接进行安全保护。
在建立连接的过程中,客户端会验证服务器的 TLS 证书,并协商加密参数。安全连接建立后,应用程序数据便受到保护,可以防止传输过程中的被动窃听和未被察觉的数据篡改。
HTTPS 通常使用 443 端口。在 HTTP/1.1 和 HTTP/2 部署中,TLS 通常运行在 TCP 之上。
HTTP/3 同样采用 HTTPS 的通信机制,但它通过基于 UDP 构建的安全传输协议 QUIC 来传输 HTTP。在上述所有情况下,HTTP 始终属于应用层协议。
HTTP 与 HTTPS 的主要区别
| 对比项目 | HTTP | HTTPS |
|---|---|---|
| 数据加密 | 不具备内置加密功能 | 使用 TLS 进行加密 |
| 数据完整性 | 不具备内置的数据完整性保护机制 | 通过 TLS 提供数据完整性保护 |
| 服务器身份验证 | HTTP 本身不提供此功能 | 通常通过 TLS 证书进行验证 |
| 默认端口 | 80 | 443 |
| 常见 URL 协议前缀 | http:// |
https:// |
| 常见应用场景 | 旧版系统和隔离网络环境 | 公共网站、电子商务平台、API 和 Web 应用程序 |
| 浏览器安全提示 | 可能被标记为“不安全” | TLS 验证成功后,浏览器会将其视为安全连接 |
HTTPS 是如何工作的?
HTTPS 通过以下流程,在客户端与服务器之间建立受保护的通信通道:
- 建立连接: 客户端向 Web 服务器或 CDN 端点发起连接请求。
- TLS 握手: 客户端与服务器协商安全参数,客户端验证服务器提供的证书是否对所请求的主机名有效。
- 安全通信: 通过加密连接交换 HTTP 请求和响应。
- 完整性校验: TLS 帮助检测传输数据是否遭到未经授权的篡改。
HTTPS 能够保护传输中的数据,但无法保证网站本身值得信任、应用程序不存在漏洞,或用户设备处于安全状态。HTTPS 是网络安全的重要基础,但不能替代完整的网络安全防护体系。
为什么 HTTPS 对企业如此重要?
保护敏感信息
HTTPS 有助于防止登录凭证、个人信息和支付相关数据在用户与在线服务之间传输时遭到泄露。
为网站和 API 提供安全基础
现代浏览器的许多功能和集成功能都要求在安全上下文中运行。HTTPS 还能让用户更清楚地了解其连接是否受到保护。
支持安全的内容分发
当内容分发网络(CDN)处理 HTTPS 流量时,企业应同时保护用户与 CDN 之间的连接,以及适用情况下 CDN 与源站之间的连接。
仅对传输路径中的某一部分进行加密,并不能确保整个内容分发链路的安全。
如何从 HTTP 迁移到 HTTPS?
从 HTTP 迁移到 HTTPS 通常包括以下步骤:
- 为相关主机名申请并部署有效的 TLS 证书。
- 根据实际需要,为网站、应用程序和 CDN 端点配置安全的 HTTPS 服务。
- 通过服务器端永久重定向,将 HTTP URL 重定向到对应的 HTTPS URL。
- 将内部链接、规范 URL(Canonical URL)、站点地图和关键集成配置更新为 HTTPS。
- 识别并解决混合内容问题,例如仍通过 HTTP 加载的脚本或图像。
- 测试证书有效性、重定向配置和端到端 TLS 连接,并在 HTTPS 配置稳定可靠后,评估是否启用 HTTP 严格传输安全(HSTS)。
对于使用 CDN 的企业,还应特别关注证书管理,以及 CDN 与源站之间的 TLS 连接安全。
有关更多信息,请参阅我们的 CDN SSL/TLS 安全指南。
HTTP 与 HTTPS 常见问题解答
HTTPS 比 HTTP 更快吗?
不一定。TLS 会带来额外的安全处理开销,但 HTTP/2、HTTP/3、连接复用和 CDN 优化等现代协议功能与技术可以提升性能。
实际访问速度取决于协议版本、服务器配置、网络状况和缓存策略等因素。
使用 HTTPS 就意味着网站完全安全吗?
不是。HTTPS 能够保护网络连接,但网站仍可能包含恶意内容,或存在应用程序安全漏洞。
全面的安全防护还需要结合安全的身份验证机制、应用程序防护、软件更新和持续监控等措施。
HTTPS 与 SSL/TLS 有什么区别?
HTTPS 是通过 TLS 提供安全保护的 HTTP。
SSL 是 TLS 的早期版本,目前已被淘汰。虽然人们仍习惯使用“SSL 证书”这一名称,但现代安全网站实际使用的是 TLS。
HTTP/3 必须使用 HTTPS 吗?
HTTP/3 设计为运行在 QUIC 协议之上,而 QUIC 集成了 TLS 1.3。在常规 Web 部署中,HTTP/3 用于建立安全的 HTTPS 连接。