http协议和https协议【详解】
http协议和https协议
1、http协议
版本进化历程:
1.0: 每次都要进行连接请求,才能进而传输数据,又断开连接,不能重复利用已建立的连接。
1.1: 可以利用已建立的连接,因为有keep-alive,可以使连接保持一段时间,也可以并行请求传输数据,但有上限。
存在的问题:(1)明文 没有压缩;(2)顺序块传输 速度慢,但有一个传输错误,则会重新传这个,导致后面无法进行;(3)herder长;(4)server不能主动push
2.0:(1)进行二进制传输 有压缩;(2)单连接+帧 乱序块传输,速度快;(3)header进行压缩;(4)server可以主动push
2、https协议
(1)对称加密
(2)非对称加密
(3)对称+非对称加密
对称+非对称也可能存在遭遇黑客,如下所示:
小结: 明文=裸奔 对称:key唯一=明文 非对称:S——>C不安全 对称+非对称:中间人
解决中间人问题:
(4)对称+非对称+CA
(5)https:对称+非对称+hash散列算法+CA
例:访问百度
- C——>S:支持SSL版本、 非对称算法 、随机数1 (SSL:是套接字加密,不是证书)
- S——>C:假设就用SSL1.0 、对称算法 、随机数2、 证书
- C:证书认证
- C——>S:随机数3 、hash(1,2)=xx对1、2步中的数进行hash算法得到一个xx发给S
- S:先验证xx==hash(1,2)?——>再把前面的随机数1、2、3用一个算法得到用于后面进行对称加密的Key
- S——>C:hash(1,2,4)=zz对1,2,4步中的数进行hash算法得到一个zz发给C
- C:先验证hash(1,2,4)==zz?——>再把前面的随机数1、2、3用一个算法得到用于后面进行对称加密的Key
上一篇:
Java架构师技术进阶路线图
下一篇:
全双工和半双工的区别