HTTP协议简介及HTTPS原理

HTTP协议

HTTP1.0

默认支持短连接,即三次握手建立连接后,服务器返回html,然后四次挥手断开连接。因为那个年代网站内容比较少,大部分是文字和少量图片,不会有大量css、js的加载。
但随着网页的迅速发展,每次请求css、js都需要建立和释放连接,开销过大

HTTP1.1

默认支持长连接,解决了加载一个页面进行多次请求时,频繁建立和释放连接的问题。

HTTP2.0

默认支持长连接,并支持多路复用,基于同一个TCP连接并行发送多个请求以及接收响应,解决了HTTP1.1对同一时间同一域名的请求有限制的问题。二进制分帧,将传输数据拆为更小的帧,提高了性能,实现低延迟高吞吐。

HTTPS原理

http协议都是明文的,是没有加密的。
之前基于SSL协议对http进行加密,后来升级为TSL协议,现在称之为SSL/TSL

原理

1、浏览器把自己支持的加密规则发给网站
2、网站从这套加密规则中选出一套加密算法和hash算法,然后把自己的身份信息用证书的方式发回浏览器,证书里有网站的地址,加密公钥,证书颁发机构
3、浏览器验证证书的合法性;然后浏览器生成一个随机数(R),用证书里的公钥对随机数进行加密(我们称为S),这里用非对称加密算法生成R;然后用约定好的hash算法生成握手消息的hash值,用R对消息进行加密,把S和R加密过的消息及消息的hash值打包发给网站,这里用的对称加密算法。

对称加密

加密和解密用的同一套算法

非对称加密

公钥加密,私钥解密

4、网站获取消息,先用私钥解锁S获得R,用R对消息进行解密,再用hash算法 对消息计算哈希值,比较传过来的哈希值和自己算的哈希值,如果一致,则认为消息没有被篡改。最后用密码加密一段握手消息发给浏览器
5、浏览器解析消息,计算消息hash值并比较,握手结束。
之后所有的数据都会由之前浏览器生成的随机密码R,使用对称加密进行加密。

非对称加密算法

RSA

对称加密算法

AES,RC4

发布了352 篇原创文章 · 获赞 24 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/lbh199466/article/details/104826740