HTTP 与 HTTPS

一、HTTP

HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范

而HTTP是一个传输协议,即将数据由A传到B或将B传输到A,并且 A 与 B 之间能够存放很多第三方,如: A<=>X<=>Y<=>Z<=>B

传输的数据并不是计算机底层中的二进制包,而是完整的、有意义的数据,如HTML 文件, 图片文件, 查询结果等超文本,能够被上层应用识别

在实际应用中,HTTP常被用于在Web浏览器和网站服务器之间传递信息,以明文方式发送内容,不提供任何方式的数据加密

特点如下:

二、HTTPS

在上述介绍HTTP中,了解到HTTP传递信息是以明文的形式发送内容,这并不安全。而HTTPS出现正是为了解决HTTP不安全的特性

为了保证这些隐私数据能加密传输,让HTTP运行安全的SSL/TLS协议上,即 HTTPS = HTTP + SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密

SSL 协议位于TCP/IP 协议与各种应用层协议之间,浏览器和服务器在使用 SSL 建立连接时需要选择一组恰当的加密算法来实现安全通信,为数据通讯提供安全支持

流程图如下所示:

三、区别

来源整理自:vue3js.cn 面试官系列

补充

补充:HTTP 与 HTTPS 的核心差异在于「是否对传输数据做加密 + 身份认证 + 完整性校验」。

主要差异:

  • 安全性:HTTP 明文,易被窃听和篡改;HTTPS 在 TCP 与 HTTP 之间加入 SSL/TLS,对称加密传输内容、数字证书认证身份、摘要算法防篡改。
  • 端口:HTTP 默认 80,HTTPS 默认 443。
  • 证书:HTTPS 需要 CA 颁发的证书;浏览器对证书链做校验,证书失效或被吊销时浏览器会拦截。
  • 握手过程:HTTPS 多一次 TLS 握手,但 TLS 1.3 / HTTP/2+ 显著减少了 RTT。
  • 性能:现代 HTTPS 经过会话复用(Session Ticket)+ HTTP/2 多路复用,性能损失非常小;浏览器还会做 OCSP Stapling 优化。
  • SEO 与权限:HTTPS 站点在搜索引擎中权重更高,浏览器对很多新 API(如 geolocation)要求必须 HTTPS 上下文。

补充:HTTPS 不是「绝对安全」,它解决的是传输链路上的风险,XSS、CSRF、SQL 注入等应用层风险仍需额外防护。

区别速览(表)

维度HTTPHTTPS
端口80443
加密明文SSL/TLS 加密
证书不需要需要 CA 证书
性能较快多一次 TLS 握手(HTTP/2/3 后差距减小)
SEO不友好搜索引擎更友好
适用普通展示页、内部系统涉及账号、支付、隐私的场景

TLS 握手简化流程

  1. 客户端 ClientHello:支持协议版本、加密套件、随机数。
  2. 服务端 ServerHello + 证书 + ServerHelloDone。
  3. 客户端验证证书,生成 pre-master secret,用服务端公钥加密发送。
  4. 双方基于随机数派生出会话密钥,后续用对称加密。

补充:现代浏览器对没有 HTTPS 的站点会标记「不安全」,并逐步收紧 HTTP 访问能力(如地理位置 API、Web Bluetooth 等)。