一文搞懂HTTP跟HTTPS的区别

发布时间 2023-10-02 11:29:39作者: 测试开发成长录

前言

当我们在网上冲浪浏览网页时,有时候会注意到一些网址的前缀是HTTPS://,而另一些则是HTTP://。那么这两种网址前缀之间有何差异呢?在我们探讨这一问题前,我们首先要了解HTTP和HTTPS的定义。

什么是HTTP

HTTP (HyperText Transfer Protocol:超文本传输协议),是一个应用层的协议,它基于请求和响应模式,无状态,即不保持前后两次请求之间的状态,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。

设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。但HTTP协议使用明文的方式发送内容,这意味着它不提供任何加密功能,因此不适合传输敏感信息,如:信用卡号、密码等支付信息等,因为这些信息可能会被第三方截获或窃取。

那么什么是超文本传输协议?我们可以拆分成三个部分理解,分别是:“超文本”“传输”和“协议”。它们之间的关系如下:

按照范围的大小 协议 > 传输 > 超文本

下面就分别对这三个名词做一个解释:

什么是超文本

在互联网的早期,我们输入的信息只能保存在本地,并且主要以文本形式存在。随着互联网技术的发展,两台电脑之间能够进行数据传输,这使得人们希望能够传输更多的信息,如图片、音频、视频等,甚至希望能够通过点击文本或图片进行超链接的跳转。这种需求推动了文本语义的扩大,超文本(Hypertext)这个概念应运而生。

超文本是一种以链接方式组织并展示信息的文本格式,它允许用户在文本中创建链接,将不同的文本片段或资源(如图片、音频、视频等)连接在一起,从而允许用户在多个文本之间进行导航和交互。点击超链接可以跳转到其他位置的文本或资源,进一步扩大了文本的语义和信息表达的范围。因此,超文本的出现是互联网技术发展的一个重要里程碑,它极大地丰富了互联网信息的表达方式和交互性

什么是传输

就是把一堆东西从 A 点搬到 B 点,或者从 B 点搬到 A 点,即“A<=>B”。这是一种双向传输协议,在传输的过程中有两个基本的参与者A和B,数据在他们之间进行双向传输而不是单向流动。通常我们将发起传输动作的A称为请求方,将接收传输的B称为响应方。

虽数据在A和B之间传输,但并不仅限于这两个角色,可以允许存在中间的"中转"或"接力"。因此,传输方式可以是"A<=>B",也可以是"A<=>X<=>Y<=>Z<=>B",在A到B的传输过程中可以存在任意多个中间人。这些中间人也遵循HTTP协议,只要不干扰基本的数据传输,就可以添加任何额外的功能,比如安全认证、数据压缩、编码转换等,以优化整个传输过程。

什么是协议

协议,在我们日常生活中常常出现,比如当我们去一个新公司时,常常需要签署一份保密协议。另外,在使用各种软件时,我们也会遵守各种许可协议。这些协议实际上与HTTP协议具有相同的本质。它们都是参与者之间的一种行为约定和规范

经过对HTTP中三个名词的详细阐述,那么我们就可以总结一下,什么是 HTTP?可以用下面这个经典的总结回答一下:HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

什么是HTTPS

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTP与HTTPS的区别

  • 安全性:HTTP是明文传输,数据未加密,安全性较差;HTTPS数据传输过程利用SSL/TLS协议来加密数据包,安全性较好。

  • 证书费用:HTTPS协议需要向CA(证书颁发机构)申请数字证书以验证服务器身份,一般来说,这种证书需要付费购买。虽然存在一些免费的证书,但它们往往有一些限制,例如限制使用时间、限制用途等。

  • 连接方式和端口:HTTP默认端口是 80 端口,HTTPS是 443 端口。另外,HTTP和HTTPS协议在建立连接时使用的握手过程也不同。

  • 消耗资源:https需要更多的服务器资源来处理加密和解密操作,因此相比http而言,它对服务器资源的消耗更大。

  • 响应速度:HTTP使用TCP三次握手建立连接,客户端和服务端需要交换3个数据包,而HTTPS除了TCP的3个包,还需要加上SSL握手需要的9个包,一共是12个包。因此,HTTP页面响应速度比HTTPS快,但在实际应用中,这种差异通常可以忽略不计。