news 2026/4/15 6:28:30

一篇文章彻底搞懂http与https的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一篇文章彻底搞懂http与https的区别

文章目录

  • 基本概念
  • HTTP 与 HTTPS 区别
  • TCP 三次握手
  • HTTPS 的工作原理
    • 加密
  • HTTPS 完整握手流程
  • 追问
    • HTTPS 为什么需要证书?
    • HTTPS 有什么性能优化的方式?
    • HTTPS 虽然安全,但是我的网站只是个静态网站,使用 HTTP 是不是就行了?
    • 为什么不能用 MD5 加密密码?

基本概念

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。是在互联网上应用最广泛的一种网络协议。是一个客户端和服务端请求和应答的标准(TCP),用于从WWW(超文本)服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。

HTTP 默认工作在 TCP 协议80 端口,用户访问网站http://打头的都是标准 HTTP 服务。

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。是以安全为目标的HTTP通道,可以看做是HTTP的安全版,即HTTP+SSL层。HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS 默认工作在 TCP 协议443端口,它的工作流程一般如以下方式:

  • 1、TCP 三次同步握手
  • 2、客户端验证服务器数字证书
  • 3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
  • 4、SSL 安全加密隧道协商完成
  • 5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。

截至 2018 年 6 月,Alexa 排名前 100 万的网站中有 34.6% 使用 HTTPS 作为默认值,互联网 141387 个最受欢迎网站的 43.1% 具有安全实施的 HTTPS,以及 45% 的页面加载(透过Firefox纪录)使用HTTPS。2017 年3 月,中国注册域名总数的 0.11%使用 HTTPS。

根据 Mozilla 统计,自 2017 年 1 月以来,超过一半的网站流量被加密。

HTTP 与 HTTPS 区别

  • HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  • 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
  • HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
  • http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
  • HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
  • HTTPS 的本质实际上可以概括为:“HTTP over TLS/SSL”,通过加密和认证,解决了 HTTP 存在的窃听,篡改,冒充的问题。

TCP 三次握手

在TCP/IP协议中,TCP协议通过三次握手建立一个可靠的连接

  • 第一次握手:客户端尝试连接服务器,向服务器发送 syn 包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入 SYN_SEND 状态等待服务器确认
  • 第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个 SYN包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态
  • 第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手

简化:

HTTPS 的工作原理

我们都知道 HTTPS 能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用 HTTPS 协议。

1、客户端发起 HTTPS 请求

这个没什么好说的,就是用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。

2、服务端的配置

采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl 就是个不错的选择,有 1 年的免费服务)。

这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3、传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。

如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5、传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(对称秘钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7、传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

8、客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

加密

HTTPS 的加密机制是对称加密和非对称加密组合。

  • 非对称加密:在 HTTPS 握手阶段,使用公钥加密,私钥解密,处理好密钥协商的问题,客户端从 SSL 证书中获取服务器公钥,将随机生成的对话密钥加密后发送给服务器,服务器使用私钥解密后便可以得到会话密钥。
  • 对称加密:在数据的传输阶段,使用握手阶段协商的密钥加密传输数据。

对于 TLS1.3 来说,简化了握手的流程,只需要 1RTT(往返时间) 即可完成密钥的协商,比 TLS1.2 更高效(TLS1.2 是 2RTT)

HTTPS 完整握手流程

  1. 客户端发送 Client Hello 消息:这套消息包含支持的 TLS 版本、加密信息、一个随机数 A
  2. 服务端回应 Server Hello 消息:确认 TLS 版本、加密信息、一个随机数 B 和 SSL 证书
  3. 客户端验证证书:客户端通过 CA 公钥验证证书合法性,这一步防范的是中间人伪造,同时这一步先生成预主密钥(premaster secret),然后用服务器公钥加密后发送给服务器。
  4. 服务器解密预主密钥(premaster secret):用私钥解密得到密钥,结合随机数 A、B,生成会话密钥,用于后续的对称加密。
  5. 双方确认加密通道:客户端和服务器分别用会话密钥加密 “Finished” 消息,确认对方能正常解密,握手完成。
  6. 数据传输:后续所有 HTTP 请求 / 响应均用会话密钥加密传输

追问

HTTPS 为什么需要证书?

核心的目的是防范中间人攻击,如果没有 CA 证书,中间人就可以伪造证书发送给客户端,在客户端一侧无法分清真假,就会出现将加密后的会话密钥发送给中间人。而 CA证书是由权威机构颁发的,包含了服务器的公钥和机构的签名,客户端可以通过本地内置的 CA 根证书来验证签名,确认服务器身份。

HTTPS 有什么性能优化的方式?

协议优化:使用 TLS 1.3 减少握手次数,同时在无需兼容的时候,禁用老的加密套件

证书优化:使用 EV 证书增强信任或多域名证书减少证书数量,开启 OCSP Stapling 避免客户端单独查询证书吊销状态

连接优化:使用 HTTP/2 ,利用多路复用减少连接数,启用 Session Resumption 复用会话,避免重复握手

HTTPS 虽然安全,但是我的网站只是个静态网站,使用 HTTP 是不是就行了?

理论上是这样,可以不需要 HTTPS,但是目前搜索引擎会优先收录 HTTPS 站点,会影响我们站点的 SEO,其次目前主流浏览器对于 HTTP 站点会标记不安全,对于用户来说,这一个不安全提示可能会直接导致站点流量大量回落。所以除非是内部的一些无敏感信息的站点,只要对外的站点,尽可能都使用 HTTPS。

为什么不能用 MD5 加密密码?

因为存在漏洞,一段 MD5 可能有不同的内容,对于攻击方,可以通过明文不同但是 MD5 相同的密码来绕过验证,而且破解的成本相对来说比较低,可以直接用彩虹表来快速破解。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 6:02:59

10、Windows系统文件组织与管理全攻略

Windows系统文件组织与管理全攻略 在Windows系统中,高效地组织和管理文件是一项重要的技能。以下将详细介绍如何打开、保存文件,以及如何对文件进行排序、筛选、分组和自定义文件夹窗口等操作。 1. 文件的打开与保存 1.1 打开文件 在运行的应用程序中打开文件,可以使用“…

作者头像 李华
网站建设 2026/4/15 6:03:01

14、个性化 Windows 环境指南

个性化 Windows 环境指南 1. 屏幕分辨率与文本对象大小调整 屏幕分辨率会影响屏幕上显示的内容数量和清晰度。较低的分辨率下,屏幕上能容纳的项目较少,但这些项目更大,更容易看清。不过,在极低分辨率下,图像边缘可能会出现锯齿。为显示器选择最佳设置可以提升 Windows 使…

作者头像 李华
网站建设 2026/4/11 19:02:53

Linly-Talker镜像已上线,限时免费领取GPU试用额度

Linly-Talker镜像已上线,限时免费领取GPU试用额度 在短视频与虚拟交互内容爆发的今天,你是否想过:只需要一张照片和一段文字,就能让一个“数字人”为你开口讲解?这不再是科幻电影中的桥段——随着AI多模态技术的成熟&a…

作者头像 李华
网站建设 2026/4/13 11:39:23

Linly-Talker支持语音表情权重分配

Linly-Talker:让数字人“声情并茂”的背后技术 在一场虚拟直播中,数字主播正热情洋溢地介绍新品——她的声音充满活力,嘴角自然上扬,说到激动处眼神微睁、眉头轻抬,仿佛真的被产品打动。这并非影视级动画,而…

作者头像 李华
网站建设 2026/4/13 22:32:47

Linly-Talker支持语音相位一致性保持

Linly-Talker:如何让数字人“说得准、动得真” 在虚拟主播24小时不间断直播、AI客服秒回用户咨询的今天,我们对“像人”的标准早已不再满足于“能说话”。真正打动用户的,是那种声音与口型严丝合缝、语气自然带感、仿佛对面真有一个人在听你说…

作者头像 李华