前端面试http和https的区别

4,019 阅读2分钟

作为一名前端”代码猿“在面试的时候竞猜或问道:

面试官:“tcp/ip协议分为几层?”

面试官:“tcp握手三次建立建立过程?”

面试官:“http和https之类的区别?”

......

前端”代码猿“:“😨?????what问我这个干吗?我会写js、css就行呗”

其实要想作为一个比较高端的前端”代码猿“,TCP/IP协议这块咱们还是需要了解一下的😂

今天我们来目睹一下http和https的区别到时在哪里。

1 、https是什么?

https不是一个新的协议,它只是http协议身披一层SSL(Secure Socket Layer,安全套阶 层)协议,SSL这层协议存在于应用层(http层)到TCP层之间,如下图

2、为什么要使用https?

我在之前的文章中写过http的缺点,先简单的罗列一下缺点

2.1、http协议的报文传输时不加密的,有些隐私信息存在被窃听的风险。

2.2、http协议通信时无法验证通信方身份,可能存在伪装者(客户端、服务器)

2.3、http协议无法判断通信报文的完整性,通信报文在TCP/IP协议通信中可能会被篡改

使用https协议就是为了解决以上的三个问题,咱们都知道https协议是http协议+ssl协议组成的,那么http协议的缺点,只能是ssl协议来完成。

3、下面简介一下ssl协议

 HTTPS使用SSL(Secure Scocket Layer ,安全套阶层)和TLS(Transport Layer Secure,安全层传输协议)这两种协议。

3.1 、SSL的产生

SSL 技术最初是由浏览器开发商网景通信公司率先倡导的,开发 过 SSL3.0 之前的版本。目前主导权已转移到 IETF(Internet Engineering Task Force,Internet 工程任务组)的手中

3.2、SSL和TLS(transport layer secure,安全层传输协议)的关系?

IETF 以 SSL3.0 为基准,后又制定了 TLS1.0、TLS1.1 和TLS1.2。TSL 是以 SSL 为原型开发的协议,有时会统一称该协议 为 SSL。当前主流的版本是 SSL3.0 和 TLS1.0。

由于 SSL1.0 协议在设计之初被发现出了问题,就没有实际投入 使用。SSL2.0 也被发现存在问题,所以很多浏览器直接废除了 该协议版本。

有兴趣等出SSL怎么完成http的那三个缺点的