https连接传输流程

作者:Aphasia日期:2026/6/10

引言:为什么需要 HTTPS?

在传统的 HTTP 协议中,数据是以明文形式在网络中传输的,这带来了三大安全风险:窃听(隐私泄露)篡改(数据被劫持修改)和冒充(钓鱼网站)

为了解决这些问题,HTTPS 应运而生。HTTPS 的本质是在 HTTP 与 TCP 之间引入了一个安全层——TLS/SSL 协议。它通过混合加密体系,完美兼顾了安全与效率:

  1. 非对称加密:在握手阶段使用,用于验证服务器身份并安全地协商出“会话密钥”。
  2. 对称加密:在握手完成后使用,双方用协商出的“会话密钥”进行高性能的数据传输。

一、 TLS 1.2 握手流程七步走

第一步:Client Hello(客户端问好)

浏览器(客户端)向服务器发送请求,携带以下信息:

  • 客户端支持的 TLS 版本
  • 客户端支持的加密套件列表(如 RSA、ECDHE、AES256-GCM 等)。
  • 客户端生成的随机数 Random1

第二步:Server Hello(服务器回应)

服务器确认客户端信息,并返回:

  • 确认使用的加密套件
  • 服务器生成的随机数 Random2
  • 服务器的数字证书(内含服务器域名、服务器公钥、CA数字签名等)。

第三步:浏览器验证证书

浏览器利用操作系统或浏览器内置的 CA 公钥,对收到的证书进行有效性验证(验证域名、过期时间及 CA 签名)。验证通过后,浏览器便可以安全、放心地拿到服务器的公钥

第四步:生成并发送预主密钥(Pre-Master Secret)

浏览器在内存中随机生成第三个随机数——预主密钥(Pre-Master Secret) 。接着,使用刚拿到的服务器公钥对该预主密钥进行加密,并发送给服务器。此时,网络上的窃听者即便截获了密文,没有服务器私钥也无法解密。

第五步:服务器解密

服务器收到密文后,使用自己妥善保管的服务器私钥进行解密,成功获取到预主密钥(Pre-Master Secret)

第六步:双方独立生成会话密钥(Session Key)

至此,客户端和服务器双方都同时拥有了三把钥匙:Random1Random2Pre-Master Secret

双方通过相同的伪随机数函数(PRF)算法,将这三个输入源合并计算,各自派生出完全相同的会话密钥(Session Key)

Session Key=PRF(Pre-Master Secret,Random1,Random2)\text{Session Key} = \text{PRF}(\text{Pre-Master Secret}, \text{Random1}, \text{Random2})Session Key=PRF(Pre-Master Secret,Random1,Random2)

第七步:开始对称加密通信

握手正式完成。后续所有 HTTP 请求和响应(如 GET /api/user),都将转用效率极高的对称加密算法(如 AES、ChaCha20)结合 Session Key 进行加密传输。

三、 现代 TLS 1.3

虽然 TLS 1.2 足够安全,但在现代网络中,大部分主流浏览器(Chrome、Edge、Firefox 等)已经全面升级到了 TLS 1.3。TLS 1.3 带来了两项颠覆性的改进:

1. 废弃 RSA 密钥交换,全面拥抱 ECDHE

  • TLS 1.2 的隐患:若使用 RSA 进行密钥交换,一旦服务器的私钥泄露,攻击者就可以解密过去捕获的所有历史流量(因为历史流量中的 Pre-Master Secret 是用该公钥加密的,私钥能解开一切)。
  • TLS 1.3 的解决手段:彻底禁用 RSA 密钥交换,强制使用 ECDHE(椭圆曲线迪菲-赫尔曼) 算法。

2. 核心优势:前向保密(Forward Secrecy)与更快的速度

  • 前向保密(完美正向安全) :在 ECDHE 算法下,每次握手双方都会临时生成一对密钥对,用完即丢。服务器的静态私钥仅用于“身份认证(验签)”,而不参与“密钥交换”。这意味着,即使未来服务器的私钥泄露了,攻击者也绝对无法解密过去抓包拦截的历史数据
  • 1-RTT 握手速度:TLS 1.2 协商密钥需要 2 个往返时延(2-RTT),而 TLS 1.3 将算法精简,允许客户端在 Client Hello 时就直接发送椭圆曲线公钥参数,将握手压缩至 1-RTT,甚至支持 0-RTT 恢复连接,传输速度大幅提升。

四、 HTTPS 误区

误区 1:服务器的密钥对是握手时临时生成的?

  • 正确事实:服务器的公钥和私钥早就生成好了。通常是运维人员提前向权威的证书颁发机构(CA)申请证书,CA 对服务器的公钥和域名进行数字签名并颁发证书。服务器在启动时直接加载这些证书和私钥。

误区 2:浏览器是用 CA 公钥去“解密”证书?

  • 正确事实:数字证书并不是加密传输的,其内容(域名、公钥、有效期等)全是明文。CA 解决的是防篡改问题。
    • CA 签名过程:CA 先对证书内容计算一个哈希摘要,然后用 CA 自己的私钥对这个摘要进行加密,生成“数字签名”。
    • 浏览器验签过程:浏览器收到证书后,使用内置的 CA 公钥解密数字签名得到“摘要 A”;同时,浏览器对证书内容重新计算一次哈希得到“摘要 B”。若 摘要 A == 摘要 B,且域名、有效期均匹配,则验签通过。
    • 结论:这个过程本质是验签(Verify Signature) ,而不是解密(Decrypt)

总结

https传输流程:浏览器先发起请求,给服务器传输支持的加密算法以及随机数1,服务器将选择的加密算法和数字证书以及随机数2传给浏览器,浏览器通过内置的CA公钥验证数字签名重新计算证书内容的哈希摘要进行比对,验证证书内容没有被篡改,然后浏览器生成预主密钥,使用证书里的公钥加密后传回服务器,服务器使用私钥解密后加上随机数1和随机数2通过算法得到和浏览器一样的session key,至此握手完成,之后双方使用session key 进行对称加密通信。


https连接传输流程》 是转载文章,点击查看原文


相关推荐


Flutter 屏幕旋转适配
Bowen_Jin2026/6/3

mindmap root((Flutter 屏幕旋转适配)) 原理 旋转手机 = 窗口尺寸变了 Flutter 检测到 → 自动重新布局 怎么监听 OrientationBuilder 根据横竖屏切布局 MediaQuery.sizeOf 根据宽度切布局 更推荐 怎么锁定屏幕 SystemChrome.setPreferredOrientations 锁定竖屏 portraitUp 锁


HTML应用指南:利用GET请求获取智己汽车门店位置信息
图说交通2026/5/26

智己汽车作为高端智能电动汽车品牌,深度融合先锋设计美学、纯电驱动技术、高阶智能驾驶与全场景出行服务,依托L7、LS7、LS6、L6等产品矩阵,打造兼具科技感与驾控乐趣的高端出行体验。在营销推广层面,智己摒弃传统4S店模式,创新采用“体验中心+用户中心”的新零售策略,系统构建以用户旅程为核心的全域触点网络。 目前,品牌已在北京、上海、广州、深圳、杭州、成都、武汉、西安、南京、苏州、重庆等一线及新一线城市核心商圈布局直营体验中心与交付中心,并战略性入驻上海BFC外滩金融中心、北京侨福芳草地、深圳万


Scrapy 分布式爬虫:大规模采集汽车之家电车评论
小白学大数据2026/5/5

汽车之家电车评论包含车型体验、续航表现等关键信息,是产品分析与市场调研的核心数据源。单台机器运行Scrapy爬虫易触发反爬、效率低下,分布式爬虫通过多机器协同,可有效解决这一问题。本文将精简讲解Scrapy分布式爬虫的搭建、配置、开发及部署,附带完整可运行代码,助力开发者快速实现大规模评论采集。 一、核心技术栈与环境准备 搭建Scrapy分布式爬虫需多组件协同,核心配置如下: 1.1 核心技术选型 Scrapy:核心爬虫框架,负责请求、解析与调度,支持中间件扩展。Scrapy-Redis


散户如何使用手机T0算法?
韭菜修养2026/4/25

1、什么是T0算法?T0算法如何运作? 据记者了解,当前多家券商已在其APP中推出T0算法服务,旨在通过智能化交易工具帮助投资者捕捉日内波动收益,执行“低买高卖”策略,帮助投资者降低持仓成本或增厚收益。 T0算法,全称“日内交易算法”,是一种基于量化模型的自动化交易工具。其核心逻辑是通过实时分析市场数据(如价格、成交量、盘口信息等),在极短时间内捕捉股票日内波动产生的价差,执行“低买高卖”操作,从而帮助投资者降低持仓成本或增厚收益。   具体来说,算法会设定一系列的规则和指标,当市场价


深度解密 Rollup 插件开发:核心钩子函数全生命周期图鉴
发现一只大呆瓜2026/4/17

前言 Rollup 的强大在于其精简的插件系统。一个 Rollup 插件本质上就是一个包含各种“钩子函数”的对象。理解这些钩子的执行时序,是编写高性能插件、优化构建流程的关键。本文将带你深度复盘 Rollup 的两大核心阶段:构建 (Build) 与 输出 (Output) 。 一、构建阶段钩子函数(核心阶段) 构建阶段主要负责模块的解析、加载和转换,最终完成模块依赖图的构建,是Rollup打包的基础。该阶段可细分为5个小阶段,钩子执行顺序固定为: 初始化阶段(options、buildSta


记一次 OKE 集群上的 TCP 流量黑洞排查与解决全过程
小猿姐2026/4/9

作为 Apecloud 团队,我们致力于通过开源的 KubeBlocks 项目,在 Kubernetes (K8s) 上为用户提供企业级的数据库高可用方案[1]。其中,SQL Server on K8s with Always On 是我们支持的关键能力之一,相比Microsoft 为在容器中运行 SQL Server 提供的基础StatefulSet方案, KubeBlocks 的 MSSQL Addon 提供了一整套生产级的生命周期管理能力,包括:多节点高可用配置、动态扩缩容、数据库/账户管


Spring Boot 牵手Spring AI,玩转DeepSeek大模型
小码哥_常2026/4/1

Spring Boot 牵手Spring AI,玩转DeepSeek大模型 引言:开启 AI 集成之旅 在当今这个 AI 技术迅猛发展的时代,你是否想过如何将强大的大模型融入到我们日常的 Java 开发中,为应用赋予智能交互的能力呢?今天,我们就来探索如何通过 Spring Boot 集成 Spring AI,进而调用 DeepSeek 大模型,为你的项目注入全新的 AI 活力。这不仅能让你深入了解 AI 与后端开发融合的前沿技术,还能为你在实际项目中运用 AI 技术提供宝贵的经验 。接下来,就


OpenClaw实战|从识图到公众号内容自动化,我跑通了完整链路
后端小肥肠2026/3/23

大家好,我是小肥肠。今天这篇文章,想跟大家分享一下我最近刚跑通两个skill:让 OpenClaw图像理解和 飞书 文章一键转存至公众号草稿箱。 1. 前言 最近我在慢慢做一件事:把之前在 Coze 里折腾过的插件和工作流,陆续迁到 OpenClaw + Skill 这一套上。上周末我主要搞定了两件事,都已经不是“纸上谈兵”,是真的跑起来了。 第一件:把图像理解插件迁移成 OpenClaw Skill 我把之前做的图像理解Coze插件,迁成了一个独立的 xfc-img-understand sk


墨梅博客 1.9.0 发布与 LeanCloud 停服应对 | 2026 年第 11 周草梅周报
草梅友仁2026/3/15

本文在草梅友仁的博客发布和更新,并在多个平台同步发布。如有更新,以博客上的版本为准。您也可以通过文末的 原文链接 查看最新版本。 前言 欢迎来到草梅周报!这是一个由草梅友仁基于 AI 整理的周报,旨在为您提供最新的博客更新、GitHub 动态、个人动态和其他周刊文章推荐等内容。 开源动态 本周墨梅博客的开发依旧在稳步进行中。 您可以前往 Demo 站试用:demo.momei.app/ 您可以通过邮箱 admin@example.com,密码 momei123456 登录演示用管理员账号


ai-agent工程师指南
哈里谢顿2026/3/7

一些基本概念 1 Zero-shot & Few-shot 是什么? 1. Zero-shot(零样本) 不给例子,直接让模型做。 不提供任何参考样例 只告诉模型任务是什么 完全靠模型本身能力去理解、推理 例子 把下面句子分类成积极 / 消极:这部电影太好看了! 这就是 zero-shot。 2. Few-shot(少样本 / 小样本) 给几个例子,再让模型做。 给 1~10 个左右的示例 告诉模型:我要你像这样输出 模型照着格式、逻辑去做 例子 分类:今天心情很好 → 积极分类

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读