HTTPS 与 HTTP 的区别在哪?

HTTP与HTTPS作为互联网数据传输的核心协议,其通信机制与安全特性深刻影响着现代网络应用的可靠性与用户体验。本文将解析两者的通信流程、安全机制及核心差异。

一、HTTP的通信机制

先来看看HTTP是什么吧。

HTTP基于TCP/IP协议栈,采用经典客户端-服务器模型:

  1. TCP连接建立 \
    通过三次握手创建可靠传输通道(源IP:端口 ↔ 目标IP:端口),默认端口80。
  2. 请求-响应交互 \
    浏览器发起到服务器的 TCP 连接。

<!---->

复制代码
GET /index.html HTTP/1.1
Host: www.baidu.com
  1. 服务器处理与响应 \
    服务器接收来自浏览器的 TCP 连接。

<!---->

复制代码
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>...</html>
  1. 交换信息 \
    浏览器(HTTP 客户端)与 Web 服务器(HTTP 服务器)交换 HTTP 消息。
  2. 连接终止 \
    完成传输后通过四次挥手断开连接,关闭 TCP 连接。

二、HTTPS的进化

HTTPS在HTTP与TCP层之间插入SSL/TLS加密层,通过三重防护机制应对安全威胁:

安全威胁 防护机制 实现方式
数据窃听 AES-256等对称加密 会话密钥动态协商
数据篡改 SHA-256摘要算法 数字签名验证数据完整性
身份伪造 X.509数字证书体系 CA机构签发服务器身份证书

那么,SSL 和 TLS 的区别是什么呢?

总的来说,SSL 和 TLS 没有太大的区别。

SSL 指安全套接字协议(Secure Sockets Layer),首次发布与 1996 年。SSL 的首次发布其实已经是他的 3.0 版本,SSL 1.0 从未面世,SSL 2.0 则具有较大的缺陷(DROWN 缺陷------Decrypting RSA with Obsolete and Weakened eNcryption)。很快,在 1999 年,SSL 3.0 进一步升级,新版本被命名为 TLS 1.0。因此,TLS 是基于 SSL 之上的,但由于习惯叫法,通常把 HTTPS 中的核心加密协议混称为 SSL/TLS。

HTTPS握手流程

  1. Client Hello:客户端发送支持的加密套件+随机数
  2. Server Hello:服务器选择加密套件+证书+随机数
  3. 密钥交换:ECDHE算法生成预主密钥
  4. 会话密钥:通过HKDF算法生成加密密钥
  5. 加密通信:应用层数据使用对称加密传输

如下图所示,以TLS层为例。

三、HTTP与HTTPS的不同

在协议层看看它们有什么不同。

对比维度 HTTP HTTPS
传输加密 明文传输 SSL/TLS加密传输
端口号 80 443
证书要求 无需证书 需CA签发数字证书
响应速度 RTT 3次 RTT 5-7次(支持会话恢复)
头部结构 无加密标识 包含加密协议版本等安全参数
资源消耗 增加15-20% CPU负载

四、HTTPS安全机制解析

  1. 混合加密体系 \
    结合非对称加密(RSA/ECC)的安全密钥交换与对称加密(AES)的高效数据加密,兼顾安全与性能。
  2. 证书链验证 \
    通过根证书→中间证书→服务器证书的信任链验证,防止中间人攻击。OCSP协议实时检查证书吊销状态。
  3. HSTS策略 \
    强制浏览器使用HTTPS连接,防范SSL剥离攻击。

五、总结

  • 端口号:HTTP 默认是 80,HTTPS 默认是 443。
  • URL 前缀 :HTTP 的 URL 前缀是 http://,HTTPS 的 URL 前缀是 https://
  • 安全性和资源消耗:HTTP协议基于TCP协议构建,其传输的数据均为明文形式,且通信双方无法验证彼此身份。而HTTPS作为HTTP的安全演进版本,其通信架构分为两层:底层通过SSL/TLS协议与TCP建立安全通道,上层则承载经过加密处理的HTTP通信。该加密体系采用混合加密机制,即使用服务器数字证书中的公钥对对称会话密钥进行非对称加密传输,实际数据传输阶段则采用高效对称加密算法。相较于HTTP,HTTPS通过双重加密机制显著提升了安全性,但同时也因加解密运算增加了服务器的计算负载。

行业拓展

近 10 年间,甚至连传统企业都开始大面积数字化时,我们发现开发内部工具的过程中,大量的页面、场景、组件等在不断重复,这种重复造轮子的工作,浪费工程师的大量时间。 针对这类问题,JNPF 低代码平台把某些重复出现的场景、流程,具象化成一个个组件、api、数据库接口,避免了重复造轮子,极大的提高了程序员的生产效率。

体验地址:https://www.jnpfsoft.com

这是一个基于 Flowable 引擎(支持 java、.NET),已支持 MySQL、SqlServer、Oracle、PostgreSQL、DM(达梦)、 KingbaseES(人大金仓)6 个数据库,支持私有化部署,前后端封装了上千个常用类,方便扩展,框架集成了表单、报表、图表、大屏等各种常用的 Demo 方便直接使用。

至少包含表单建模、流程设计、报表可视化、代码生成器、系统管理、前端 UI 等组件,这种情况下我们避免了重复造轮子,已内置大量的成熟组件,选择合适的组件进行集成或二次开发复杂功能,即可自主开发一个属于自己的应用系统。

相关推荐
阿维的博客日记3 小时前
(生活比喻-图文并茂)http2.0和http3.0的队头阻塞,http2.0应用层解决,TCP层存在,3.0就是彻底解决,到底怎么理解区别???
网络协议·tcp/ip
2501_916008894 小时前
iOS App抓包工具排查后台唤醒引发请求异常
websocket·网络协议·tcp/ip·http·网络安全·https·udp
2501_915918418 小时前
iPhone 抓包工具有哪些?多工具对比分析优缺点
websocket·网络协议·tcp/ip·http·网络安全·https·udp
工控小楠8 小时前
Modbus TCP转Profinet网关实现视觉相机与西门子PLC配置实例研究
modbustcp·网络协议·tcp/ip·profinet
半路_出家ren8 小时前
传输层协议TCP、UDP
网络协议·tcp/ip·udp·tcp
小何学计算机10 小时前
HTTPS工作原理
网络协议·http·https
游戏开发爱好者812 小时前
iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
websocket·网络协议·tcp/ip·http·网络安全·https·udp
2501_9159214312 小时前
苹果App上架流程:不用Mac也可以上架的方法
websocket·网络协议·tcp/ip·http·网络安全·https·udp
阿沁QWQ12 小时前
UDP的socket编程
网络·网络协议·udp
DemonAvenger17 小时前
Go中UDP编程:实战指南与使用场景
网络协议·架构·go