HTTP 与 HTTPS 入门:从请求流程到 TLS 握手

举报
yd_297220493 发表于 2026/11/15 00:55:22 2026/11/15
【摘要】 引言每天打开浏览器、刷视频、登录网站,背后都离不开两个协议:HTTP 与 HTTPS。它们看起来只差一个字母 S,实际却代表了两种完全不同的通信方式。本文从一次完整的请求流程讲起,再拆解 TLS 握手,帮助初学者建立起对 Web 通信安全的整体认识。 一、HTTP 是什么HTTP(超文本传输协议)是浏览器与服务器之间约定好的“对话规则”。它规定了请求长什么样、响应长什么样、状态码代表什么意...

引言

每天打开浏览器、刷视频、登录网站,背后都离不开两个协议:HTTP 与 HTTPS。它们看起来只差一个字母 S,实际却代表了两种完全不同的通信方式。本文从一次完整的请求流程讲起,再拆解 TLS 握手,帮助初学者建立起对 Web 通信安全的整体认识。

一、HTTP 是什么

HTTP(超文本传输协议)是浏览器与服务器之间约定好的“对话规则”。它规定了请求长什么样、响应长什么样、状态码代表什么意思。HTTP 基于请求-响应模型:客户端先发起请求,服务器再返回响应,一问一答完成一次交互。

HTTP 协议本身非常简单:请求由请求行、请求头和请求体组成;响应由状态行、响应头和响应体组成。常见的请求方法有 GET、POST、PUT、DELETE,常见的状态码有 200 成功、301 永久重定向、404 资源不存在、500 服务器内部错误。

二、一次 HTTP 请求的完整流程

以在浏览器输入网址并回车为例,背后依次发生以下步骤:

  1. 域名解析:浏览器先查缓存,再向 DNS 服务器查询域名对应的 IP 地址。
  2. 建立 TCP 连接:通过三次握手与服务器建立可靠连接。
  3. 发送 HTTP 请求:浏览器把请求行、请求头发送给服务器。
  4. 服务器处理并响应:服务器找到资源,返回状态码、响应头和响应体。
  5. 浏览器渲染:浏览器解析 HTML、加载样式与脚本,把页面呈现出来。
  6. 断开连接:HTTP/1.1 默认使用长连接,连接可被后续请求复用。

理解这个流程很重要:很多网络问题,例如页面打不开、接口超时,都可以按这条链路逐段定位。

三、HTTP 的短板:明文传输

HTTP 最大的问题是“明文传输”。请求和响应在网络中以可读文本的形式传递,任何能截获流量的中间节点都能看到其中的内容,包括账号、密码和 Cookie。

此外,HTTP 没有身份验证机制:客户端无法确认对方是不是真正的服务器,容易遭遇中间人攻击;也没有完整性校验:传输内容被篡改后,接收方难以察觉。这些短板在互联网早期尚可容忍,如今已无法满足安全需求。

四、HTTPS:给 HTTP 加上一层“盔甲”

HTTPS 并不是一种全新的应用层协议,而是 HTTP + TLS 的组合。TLS(传输层安全协议)位于传输层与应用层之间,负责加密、身份认证和完整性校验。数据在交给 TCP 发送之前先被 TLS 加密,接收方再解密还原。

可以这样理解:HTTP 负责“说什么”,TLS 负责“安全地说”。浏览器地址栏出现小锁标志,就表示当前连接经过了 TLS 保护。

五、TLS 握手详解

在传输业务数据之前,客户端与服务器要先完成一次 TLS 握手,协商出后续加密使用的会话密钥。以 TLS 1.2 为例,主要步骤如下:

  1. ClientHello:客户端发送支持的 TLS 版本、加密套件列表和一个随机数。
  2. ServerHello:服务器选定 TLS 版本和加密套件,返回自己的随机数,并发送数字证书。
  3. 验证证书:客户端验证证书是否由可信 CA 签发、域名是否匹配、是否在有效期内。
  4. 密钥交换:客户端生成预主密钥,用服务器证书中的公钥加密后发送给服务器。
  5. 生成会话密钥:双方用两个随机数和预主密钥,各自算出相同的会话密钥。
  6. Finished:双方互发加密的 Finished 消息,确认握手成功,此后所有应用数据都用会话密钥加密传输。

TLS 1.3 进一步简化了握手,把往返次数从两次压缩到一次,并移除了不安全的加密算法,握手更快也更安全。

六、对称加密与非对称加密如何分工

TLS 的设计体现了一种经典分工:非对称加密只用在握手阶段,负责安全地协商密钥;对称加密用在数据传输阶段,负责高效地加密大量数据。非对称加密安全性高但速度慢,对称加密速度快但密钥分发困难,两者结合正好互补。

证书则是这套机制的信任锚。CA(证书颁发机构)为服务器的公钥“背书”,浏览器内置了可信 CA 列表,收到证书后沿着证书链逐级验证,最终确认服务器身份真实可信。

七、日常开发中的实用建议

  1. 生产环境一律使用 HTTPS,不要再为新站点提供纯 HTTP 访问。
  2. 证书到期前及时续期,避免因证书过期导致服务不可用。
  3. 开启 HSTS,让浏览器强制使用 HTTPS,防止被降级到 HTTP。
  4. 排查问题时可用 curl -v 观察握手过程,或在浏览器开发者工具的“安全”面板查看证书信息。
  5. 注意混合内容:HTTPS 页面中不要引用 HTTP 资源,否则浏览器会拦截或告警。

八、常见误区

  • 误区一:HTTPS 让网站变慢。 现代硬件和 TLS 1.3 已把握手开销降到很低,性能影响微乎其微。
  • 误区二:用了 HTTPS 就万事大吉。 HTTPS 只保护传输过程,服务器漏洞、弱口令、XSS 等问题仍需另外防范。
  • 误区三:证书等于身份绝对可信。 证书只能证明域名归属,不能证明网站内容本身没有恶意。

结语

从 DNS 解析、TCP 握手,到 HTTP 请求响应,再到 TLS 握手协商密钥,Web 通信是一条环环相扣的链路。理解 HTTP 与 HTTPS 的区别,不仅能帮助我们排查日常网络问题,也是在云上部署应用、保障数据安全的基本功。希望本文能成为你深入学习网络协议的一个起点。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。