简介
HTTPS是在HTTP的基础上和ssl/tls证书结合起来的⼀种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了解决了http的三个缺点(被监听、被篡改、被伪装)
对称加密和⾮对称加密
对称加密
即加密的密钥和解密的密钥相同,⾮对称加密
⾮对称加密将密钥分为公钥和私钥,公钥可以公开,私钥需要保密,客户端公钥加密的数据,服务端可以通过私钥来解密
建⽴连接
HTTP和HTTPS都需要在建⽴连接的基础上来进⾏数据传输,是基本操作
当客户在浏览器中输⼊⽹址的并且按下回车,浏览器会在浏览器DNS缓存,本地DNS缓存,和Hosts中寻找对应的记录,如果没有获取到则会请求DNS服务来获取对应的ip
当获取到ip后,tcp连接会进⾏三次握⼿建⽴连接
tcp的三次挥⼿和四次挥⼿
过程简图
三次挥⼿(建⽴连接)
第⼀次:建⽴连接时,客户端发送SYN包(syn=j)到服务器,并进⼊SYN_SEND状态,等待服务器确认;
第⼆次:服务器收到SYN包,向客户端返回ACK(ack=j+1),同时⾃⼰也发送⼀个SYN包(syn=k),即SYN+ACK包,此时服务器进⼊SYN_RCVD状态;
第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进⼊ESTABLISHED状态,完成三次握⼿。
完成三次握⼿,客户端与服务器开始传送数据,也就是ESTABLISHED状态。三次握⼿保证了不会建⽴⽆效的连接,从⽽浪费资源。四次挥⼿(断开连接)
第⼀次: TCP客户端发送⼀个FIN,⽤来关闭客户到服务器的数据传送。
第⼆次:服务器收到这个FIN,它发回⼀个ACK,确认序号为收到的序号加1。和SYN⼀样,⼀个FIN将占⽤⼀个序号。第三次:服务器关闭客户端的连接,发送⼀个FIN给客户端。
第四次:客户端发回ACK报⽂确认,并将确认序号设置为收到序号加1。
HTTP请求过程
建⽴连接完毕以后客户端会发送响应给服务端服务端接受请求并且做出响应发送给客户端客户端收到响应并且解析响应响应给客户
HTTPS
在使⽤HTTPS是需要保证服务端配置正确了对应的安全证书客户端发送请求到服务端服务端返回公钥和证书到客户端
客户端接收后会验证证书的安全性,如果通过则会随机⽣成⼀个随机数,⽤公钥对其加密,发送到服务端
服务端接受到这个加密后的随机数后会⽤私钥对其解密得到真正的随机数,随后⽤这个随机数当做私钥对需要发送的数据进⾏对称加密客户端在接收到加密后的数据使⽤私钥(即⽣成的随机值)对数据进⾏解密并且解析数据呈现结果给客户SSL加密建⽴
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务