深入理解 HTTP 与 HTTPS:区别以及 HTTPS 加密原理

目录

[一、HTTP 与 HTTPS 的基本概念](#一、HTTP 与 HTTPS 的基本概念)

[二、HTTP 与 HTTPS 的核心区别](#二、HTTP 与 HTTPS 的核心区别)

[三、为什么需要 HTTPS?](#三、为什么需要 HTTPS?)

[四、HTTPS 的加密通信原理(核心)](#四、HTTPS 的加密通信原理(核心))

[1. 客户端发起 HTTPS 请求](#1. 客户端发起 HTTPS 请求)

[2. 服务端返回 SSL/TLS 证书](#2. 服务端返回 SSL/TLS 证书)

[3. 客户端验证证书](#3. 客户端验证证书)

[4. 客户端生成对称密钥并用公钥加密](#4. 客户端生成对称密钥并用公钥加密)

[5. 服务端用私钥解密获取对称密钥](#5. 服务端用私钥解密获取对称密钥)

[6. 双方使用对称密钥加密通信](#6. 双方使用对称密钥加密通信)

[五、为什么 HTTPS 既用非对称又用对称加密?](#五、为什么 HTTPS 既用非对称又用对称加密?)

[六、总结:HTTP 与 HTTPS 的本质区别](#六、总结:HTTP 与 HTTPS 的本质区别)


一、HTTP 与 HTTPS 的基本概念

  • HTTP(HyperText Transfer Protocol)​ :超文本传输协议,是 Web 应用中最基础的通信协议,运行在 TCP 协议之上,默认端口 80 。它以 明文方式传输数据 ,不提供任何加密或身份验证机制。
  • HTTPS(HTTP Secure)​ :在 HTTP 的基础上增加了 SSL/TLS 加密层 ,全称为 HTTP over TLS/SSL ,运行在 TCP 协议之上,默认端口 443 。它通过加密通信内容,解决了 HTTP 的安全缺陷。

二、HTTP 与 HTTPS 的核心区别

对比维度 HTTP HTTPS
协议基础 应用层协议,明文传输 HTTP + SSL/TLS,加密传输
端口 80 443
安全性 不安全,数据容易被窃听、篡改 安全,支持加密、身份验证与数据完整性
数据传输 明文,容易被中间人攻击 加密传输,防止窃听与篡改
证书机制 需要 SSL/TLS 数字证书,通常由 CA 签发
SEO 与浏览器支持 逐渐被标记为"不安全" 被浏览器与搜索引擎优先推荐,有利于 SEO
适用场景 静态页面、内部系统等非敏感场景 登录、支付、用户数据传输等安全敏感场景

核心结论:​HTTPS 是 HTTP 的安全版本,解决了数据传输的安全性问题,是现代 Web 应用的标配。​


三、为什么需要 HTTPS?

在 HTTP 协议下,​浏览器与服务器之间的所有通信都是明文的,这意味着:

  1. 数据可被窃听 :中间人可以监听网络流量,获取用户名、密码、Cookie 等敏感信息。
  2. 数据可被篡改 :攻击者可以修改传输内容,比如将支付金额篡改,或将脚本注入页面。
  3. 身份无法验证 :用户无法确认当前访问的服务器是否为真正的服务提供者,存在被冒充的风险。

HTTPS 通过加密、身份验证与数据完整性校验,从根本上解决了上述问题。​


四、HTTPS 的加密通信原理(核心)

HTTPS 的安全性来源于 ​SSL/TLS 协议 ,其核心是:​使用非对称加密安全地传递一个对称密钥,之后使用对称加密保护通信内容。下面是 HTTPS 建立连接的主要流程:

1. 客户端发起 HTTPS 请求

用户通过浏览器访问 https://example.com,客户端向服务器发起 HTTPS 请求,默认使用 443 端口。


2. 服务端返回 SSL/TLS 证书

服务端收到请求后,返回自身的 ​SSL 数字证书,该证书包括:

  • 服务器公钥
  • 证书持有者信息(如域名)
  • 证书有效期
  • CA(Certificate Authority,证书颁发机构)​ 签发的数字签名

该证书用于证明"我是合法的服务端,不是中间人冒充的"。


3. 客户端验证证书

客户端接收到证书后,会进行如下验证:

  • 证书是否由受信任的 CA 签发
  • 证书是否过期
  • 证书上的域名是否与当前访问的域名一致
  • 证书签名是否合法

如果验证失败,浏览器会提示"连接不安全"或"证书无效"。


4. 客户端生成对称密钥并用公钥加密

验证通过后,客户端会生成一个随机的对称密钥(会话密钥)​ ,用于后续通信内容的加密。然后,客户端使用服务端证书中的 ​公钥加密该对称密钥,并将加密后的密钥发送给服务端。

为什么用公钥加密?因为只有服务端拥有对应的私钥,可以解开这个对称密钥,确保传输安全。


5. 服务端用私钥解密获取对称密钥

服务端收到加密的对称密钥后,使用自己的 ​私钥解密,得到客户端生成的对称密钥。

至此,客户端和服务端都持有了相同的对称密钥,且该密钥是通过安全方式传递的。


6. 双方使用对称密钥加密通信

接下来,客户端与服务端之间的所有数据传输(如 HTTP 请求与响应),都使用这个 ​对称密钥进行加密与解密。由于对称加密效率高,适合大数据量的加密传输。


五、为什么 HTTPS 既用非对称又用对称加密?

这是 HTTPS 设计的精华所在:

加密类型 用途 特点 为什么用在这里?
非对称加密(如 RSA)​ 安全地传递对称密钥 安全性高,但速度慢 用来加密"对称密钥",确保密钥传输不被窃取
对称加密(如 AES)​ 加密实际通信内容 速度快,适合大数据量 双方使用同一个密钥加密数据,效率高

总结:​非对称加密用于安全地协商出一个密钥,对称加密用于高效地加密通信内容。​


六、总结:HTTP 与 HTTPS 的本质区别

项目 HTTP HTTPS
传输方式 明文传输,不安全 加密传输,安全可靠
协议层 应用层协议 HTTP + SSL/TLS 协议
端口 80 443
证书 需要权威机构签发的 SSL 证书
适用场景 非敏感数据展示 登录、支付、用户信息等敏感操作
用户信任 浏览器提示"不安全" 浏览器显示安全锁,增强用户信任

HTTPS 已不再是"可选项",而是"必选项"​。无论是从用户隐私、数据安全,还是从 SEO、浏览器兼容性、企业合规等角度考虑,部署 HTTPS 都是现代 Web 服务的基石。

相关推荐
kyle~14 小时前
计算机网络---https(超文本传输安全协议)
计算机网络·安全·https
ayaya_mana2 天前
oha:一款轻量级HTTP负载测试工具
网络协议·测试工具·http
小猪猪屁2 天前
前端实时通信怎么选?HTTP、WebSocket、SSE 一文看懂
前端·websocket·http
m0_474606783 天前
Nginx + Certbot配置 HTTPS / SSL 证书(简化版已测试)
nginx·https·ssl
2501_915918413 天前
uni-app 跨平台项目的 iOS 上架流程:多工具组合的高效协作方案
android·ios·小程序·https·uni-app·iphone·webview
稚辉君.MCA_P8_Java3 天前
HTTP的状态码有哪些,并用例子说明一下
java·服务器·jvm·http·kubernetes
mashanshui3 天前
Https之(四)国密GMTLS
https·gmssl·tlcp·gmtls·国密https
程序员小凯3 天前
网络编程基础
网络·http·https
deepwater_zone4 天前
HTTPS
https