前端什么是https协议 (前端必学http协议)

前端什么是https协议,前端必学http协议

“这里是 云端源想IT培训 ,帮你 轻松 拿offer”

嗨~ 今天的你过得还好吗?

今天没有文案

这是一个普通

且令人期待的周五

- 2023.04.14 -

今天小编要分享的内容是:什么是HTTP协议和HTTPS协议?以及它们的区别?这题大厂面试会问到,记得划重点好好看看哦!

前端什么是https协议,前端必学http协议

一、HTTP协议简介

1.HTTP是什么

HTTP 超文本传输协议(Hyper Text Transfer Protocol)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

前端什么是https协议,前端必学http协议

请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

2. HTTP协议通信过程

HTTP 通信过程主要如下:

(1)服务器在 80 端口等待客户的请求。

(2)浏览器发起到服务器的 TCP 连接(创建套接字 Socket)。

(3)服务器接收来自浏览器的 TCP 连接。

(4)浏览器(HTTP 客户端)与 Web 服务器(HTTP 服务器)交换 HTTP 消息。

(5)关闭 TCP 连接。

3.HTTP优缺点

优点:

  • http的灵活性高,可扩展性强。从http1.0到http1.1再到http2.x,http协议一直在进行扩展新的属性。
  • 可靠传输。因为http协议是基于tcp协议的一种应用层协议,tcp协议就是可靠传输协议。
  • 请求应答,有来有回。
  • 无状态的。每一个请求都是相互独立的,默认不需要保存上下文的信息,处理速度快。

前端什么是https协议,前端必学http协议

缺点:

  • 明文传输不安全
  • 复用一个TCP连接,会发生对头阻塞情况。
  • 无状态的,因此无法做连续多个步骤的操作。例如:加入购物出,结算,支付。每次都需要验证身份信息,但是无状态所以无法连续。解决办法就是利用会话技术(Cookie、Session)。

二、HTTPS协议简介

1.HTTPS是什么

HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。

前端什么是https协议,前端必学http协议

HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

2. SSL/TLS协议

SSL:安全套接层,是由网景公司开发的,最新版本为 V3。被标准化为 TLS 后,就没有再更新。

TLS:传输层安全,是 IETF 标准化组织基于 SSL 3.0 上进行了标准化,并改名为 TLS,目前应用最广泛的为 TLSv1.2。

前端什么是https协议,前端必学http协议

TLS 是一个协议集合,主要由记录协议、握手协议、警告协议、变更密码规范协议和扩展协议等几个子协议组成。

3. SSL/TLS工作原理

3.1非对称加密

SSL/TLS的核心要素是非对称加密。非对称加密采用两个密钥——一个公钥,一个私钥。在通信时,私钥仅由解密者保存,公钥由任何一个想与解密者通信的发送者(加密者)所知。

常用的非对称加密算法:RSA。

  • 优点: 算法公开,加密和解密使用不同的钥匙,私钥不需要通过网络进行传输,安全性很高。
  • 缺点: 计算量比较大,加密和解密速度相比对称加密慢很多。

前端什么是https协议,前端必学http协议

比如在某个自助邮局,每个通信信道都是一个邮箱,每一个邮箱所有者都在旁边立了一个牌子,上面挂着一把钥匙:这是我的公钥,发送者请将信件放入我的邮箱,并用公钥锁好。

但是公钥只能加锁,并不能解锁。解锁只能由邮箱的所有者——因为只有他保存着私钥。这样,通信信息就不会被其他人截获了,这依赖于私钥的保密性。

前端什么是https协议,前端必学http协议

非对称加密的公钥和私钥需要采用一种复杂的数学机制生成(密码学认为,为了较高的安全性,尽量不要自己创造加密方案)。公私钥对的生成算法依赖于单向陷门函数。

单向函数:已知单向函数 f,给定任意一个输入 x,易计算输出 y=f(x);而给定一个输出 y,假设存在 f(x)=y,很难根据 f 来计算出 x。

单向陷门函数:一个较弱的单向函数。已知单向陷门函数 f,陷门 h,给定任意一个输入 x,易计算出输出 y=f(x;h);而给定一个输出 y,假设存在 f(x;h)=y,很难根据 f 来计算出 x,但可以根据 f 和 h 来推导出 x。

比如下图就是一个单向函数,任何人都可以容易的把水果榨成果汁,但想从果汁中得到都有哪些水果就是很困难的。

前端什么是https协议,前端必学http协议

在这里,函数 f 的计算方法相当于公钥,陷门 h 相当于私钥。公钥 f 是公开的,任何人对已有输入,都可以用 f 加密,而要想根据加密信息还原出原信息,必须要有私钥才行。

3.2对称加密

使用 SSL/TLS 进行通信的双方需要使用非对称加密方案来通信,但是非对称加密设计了较为复杂的数学算法,在实际通信过程中,计算的代价较高,效率太低,因此,SSL/TLS 实际对消息的加密使用的是对称加密

前端什么是https协议,前端必学http协议

对称加密:通信双方共享唯一密钥 k,加解密算法已知,加密方利用密钥 k 加密,解密方利用密钥 k 解密,保密性依赖于密钥 k 的保密性。

常见的对称加密算法有:DES、3DES和AES等

优点: 算法公开、计算量小、加密速度快、加密效率高,适合加密比较大的数据。

缺点:

  • 交易双方需要使用相同的密钥,也就无法避免密钥的传输,而密钥在传输过程中可能会被截获,因此对称加密的安全性得不到保证。
  • 对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。

前端什么是https协议,前端必学http协议

对称加密的密钥生成代价比公私钥对的生成代价低得多,那为什么 SSL/TLS 还需要使用非对称加密呢?

因为对称加密的保密性完全依赖于密钥的保密性。在双方通信之前,需要商量一个用于对称加密的密钥。我们知道网络通信的信道是不安全的,传输报文对任何人是可见的,密钥的交换肯定不能直接在网络信道中传输。

因此,使用非对称加密,对对称加密的密钥进行加密,保护该密钥不在网络信道中被*听窃**。这样,通信双方只需要一次非对称加密,交换对称加密的密钥,在之后的信息通信中,使用绝对安全的密钥,对信息进行对称加密,即可保证传输消息的保密性。

4.HTTPS的优缺点

优点

  • 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
  • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中被窃取、改变,能确保数据的完整性。
  • HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅度增加了中间人攻击的成本。
  • SEO方面:谷歌曾在2014年8月份调整搜索引擎算法,并称"比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高"。

缺点

  • 在相同网络环境中,HTTPS相比HTTP无论是响应时间还是耗电量都有大幅度上升。
  • HTTPS的安全是有范围的,在黑客攻击、服务器劫持等情况下几乎起不到作用。
  • 在现有的证书机制下,中间人攻击依然有可能发生。
  • HTTPS需要更多的服务器资源,也会导致成本的升高。

5.HTTPS的工作过程

HTTPS加密、解密、验证及数据传输过程如下:

前端什么是https协议,前端必学http协议

1、 客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。

2、 采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书

(证书是需要申请的,并由专门的数字证书认证机构(CA)通过非常严格的审核之后颁发的电子证书 ,当然了是要钱的,安全级别越高价格越贵)。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。

3、 服务器响应客户端请求,将证书传递给客户端。

证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。(Chrome 浏览器点击地址栏的锁标志再点击证书就可以看到证书详细信息。)

4、 客户端解析证书并对其进行验证。

如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。

5、 客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。

6、 服务器在收到随机码 KEY 之后会使用私钥B将其解密。

经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。

7、 服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端 ,客户端使用相同的密钥 (随机码 KEY)解密数据。

8、 双方使用对称加密愉快地传输所有数据。

三、HTTP和HTTPS的区别

1.传输信息安全性不同

http协议是超文本传输协议,传输信息时是明文传输的,如果攻击者截取了浏览器与服务器之间的传输报文,就可以直接读懂其中的信息;

https 协议相当于http + ssl加密传输协议,为浏览器与服务器之间的通信加密,确保通信安全。

2、连接方式不同

http连接是简单的,无状态的;https是有ssl + http协议构建的,可进行加密传输,身份认证的网络协议。

前端什么是https协议,前端必学http协议

3、端口不同

http协议使用的端口是80端口; https协议使用的端口是443端口

4、证书方式不同

https协议需要申请证书,证书是需要收费的;http协议免费

今天的分享就到这里了,更多IT技术知识、学习资料 记得常来看我

前端什么是https协议,前端必学http协议

我们下期再见!

END

文案编辑|云端学长

文案配图|云端学长

内容由:云端源想分享

前端什么是https协议,前端必学http协议