做为一名前端”代码猿“在面试的时候竞猜或问道:css
面试官:“tcp/ip协议分为几层?”前端
面试官:“tcp握手三次创建创建过程?”面试
面试官:“http和https之类的区别?”
浏览器
......安全
前端”代码猿“:“😨?????what问我这个干嘛?我会写js、css就行呗”服务器
其实要想做为一个比较高端的前端”代码猿“,TCP/IP协议这块我们仍是须要了解一下的😂tcp
今天咱们来目击一下http和https的区别到时在哪里。post
1 、https是什么?加密
https不是一个新的协议,它只是http协议身披一层SSL(Secure Socket Layer,安全套阶 层)协议,SSL这层协议存在于应用层(http层)到TCP层之间,以下图设计
二、为何要使用https?
我在以前的文章中写过http的缺点,先简单的罗列一下缺点
2.一、http协议的报文传输时不加密的,有些隐私信息存在被窃听的风险。
2.二、http协议通讯时没法验证通讯方身份,可能存在假装者(客户端、服务器)
2.三、http协议没法判断通讯报文的完整性,通讯报文在TCP/IP协议通讯中可能会被篡改
使用https协议就是为了解决以上的三个问题,我们都知道https协议是http协议+ssl协议组成的,那么http协议的缺点,只能是ssl协议来完成。
三、下面简介一下ssl协议
HTTPS使用SSL(Secure Scocket Layer ,安全套阶层)和TLS(Transport Layer Secure,安全层传输协议)这两种协议。
3.1 、SSL的产生
SSL 技术最初是由浏览器开发商网景通讯公司率先倡导的,开发 过 SSL3.0 以前的版本。目前主导权已转移到 IETF(Internet Engineering Task Force,Internet 工程任务组)的手中
3.二、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的那三个缺点的