源本科技 | 码上会

HTTP/HTTPS 的区别

2025/12/29
19
0

学习目标

  • 清晰理解 HTTP 与 HTTPS 的定义与用途

  • 掌握两者在安全性、端口、工作层级等方面的关键差异

  • 了解为何现代 Web 开发普遍采用 HTTPS

  • 能够解释加密、证书和端口在协议中的作用


什么是 HTTP

HTTP(HyperText Transfer Protocol,超文本传输协议)由 Tim Berners-Lee 发明,是万维网(WWW)数据通信的基础协议。

  • 它定义了浏览器(客户端)与 Web 服务器之间如何交换数据。

  • 支持传输文本、图片、视频等多媒体内容。

  • 基于 请求 - 响应模型:客户端发送请求,服务器返回响应。

  • 默认使用 80 端口

  • 属于 应用层协议(OSI 模型第 7 层)。

HTTP 的工作流程

  • HTTP 请求 包含:请求方法(GET、POST 等)、请求头、可选请求体。

  • HTTP 响应 包含:状态码(如 200、404)、响应头、响应体(HTML 内容或错误信息)。

缺陷:所有数据以明文传输,任何中间节点(如路由器、公共 Wi-Fi)都可窃听或篡改。


什么是 HTTPS

HTTPS(HyperText Transfer Protocol Secure) = HTTP + SSL/TLS 加密层

  • 通过 SSL(Secure Sockets Layer)或其升级版 TLS(Transport Layer Security)对通信进行加密。

  • 默认使用 443 端口

  • 不仅加密数据,还通过数字证书验证服务器身份,防止“钓鱼网站”。

  • 虽常被说成工作在“传输层”,但严格来说,它是在 HTTP 之上叠加了 TLS(TLS 本身工作在传输层之上、应用层之下)。

HTTPS 的安全机制

  1. 加密:防止数据被窃听。

  2. 完整性校验:确保数据在传输中未被篡改。

  3. 身份认证:通过 CA(证书颁发机构)签发的 SSL 证书确认服务器真实性。


HTTP 与 HTTPS 的详细对比

对比维度

HTTP

HTTPS

全称

超文本传输协议

超文本传输安全协议

URL 前缀

http://

https://

默认端口

80

443

数据传输形式

明文(可读)

加密(不可读)

安全性

❌ 低,易被监听 / 篡改

✅ 高,具备加密、认证、完整性保护

加密机制

使用 SSL/TLS(结合非对称 + 对称加密)

证书需求

不需要

必须部署有效的 SSL/TLS 证书

性能

略快(无加解密开销)

略慢(握手阶段有计算开销,但 TLS 1.3 已大幅优化)

SEO 与浏览器支持

被标记为“不安全”,排名较低

被 Google 等优先推荐,现代浏览器强制要求敏感操作使用 HTTPS

适用场景

静态公开内容(如旧式博客、内部测试页)

所有涉及用户交互、登录、支付、隐私数据的网站

小知识:现代浏览器(如 Chrome、Firefox)已将所有 HTTP 页面标记为 “Not Secure”,推动全网向 HTTPS 迁移。


为什么 HTTPS 更受青睐?

  1. 用户信任:锁形图标 🔒 提升用户安全感。

  2. 防止中间人攻击:即使数据被截获,也无法解密。

  3. 合规要求:GDPR、PCI DSS 等法规强制要求敏感数据加密传输。

  4. 性能提升:HTTPS 是启用 HTTP/2HTTP/3 的前提,这些新协议反而比 HTTP/1.1 更快。

  5. 搜索引擎优化(SEO):Google 明确将 HTTPS 作为排名因素之一。


常见误区

  • ❌ “HTTPS 只用于登录页” → 应全站启用 HTTPS,避免混合内容(Mixed Content)风险。

  • ❌ “HTTPS 会让网站变慢” → 现代硬件和 TLS 1.3 使性能差距几乎为零,且 HTTP/2 的多路复用大幅提升效率。

  • ❌ “自签名证书也能提供足够安全” → 自签名证书无法通过浏览器信任链验证,会触发安全警告,仅适用于本地开发。


重点总结

  • HTTP 是明文协议,HTTPS 是加密协议

  • HTTPS 通过 SSL/TLS 实现三大安全目标:保密性、完整性、身份认证

  • 所有面向公众的网站都应使用 HTTPS,不仅是安全需求,更是行业标准。

  • URL 中的 http://https:// 不仅是前缀不同,更代表了完全不同的安全级别


思考题

  1. 为什么现代浏览器强制要求表单提交(如登录)必须在 HTTPS 页面下进行?

  2. 如果一个网站同时加载了 http:// 的图片资源(即使主页面是 HTTPS),会有什么安全风险?这种现象叫什么?

  3. 免费的 SSL 证书(如 Let's Encrypt)与付费证书在安全性上有本质区别吗?主要差异在哪里?