HCLacids / resume

1 stars 0 forks source link

计网:http1.1 和 http2.0 的区别 #7

Open HCLacids opened 2 years ago

HCLacids commented 2 years ago

参考链接

这篇链接主要从HTTP协议的发展史,来说明每一次的发展是为了解决什么问题。 HTTP是超文本传输协议 1.0是第一个提出的标准协议,其特点是通过TCP连接之后只能完成一次请求,发出另一个请求后,需要重新进行TCP连接。 HTTP1.1协议中解决了该问题,在第一次建立TCP连接后,默认开启keep-alive为长连接,这样有多次请求可以只建立一次TCP连接。 它增加了缓存相关的请求头,带宽优化,错误类型,Host头处理。 而HTTP1.1并没有真正解决队头堵塞的问题,而且HTTP也明文传输,有安全隐患,keep-alive给服务器会造成性能的压力。 SPDY协议利用多路复用降低了延迟、优先请求、header压缩、HTTPS加密传输、服务端推送 HTTP2.0则是SPDY协议升级版,其采取了二进制分帧、可以明文传输、header压缩较SPDY算法不同,多路复用、流优先、服务器推送。

HCLacids commented 2 years ago

文章里面也还提到了HTTPS和HTTP的区别 1.HTTPS需要CA申请证书 2.HTTP是运行TCP之上,所有传输的内容都是明文,HTTPS是运行在SSL/TLS之上,SSL/TLS运行于TCP之上,所有传输的内容都经过加密的。 3.HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443 4.HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。

HCLacids commented 2 years ago

HTTPS

HCLacids commented 2 years ago

参考链接 对称加密 是

encrypt(明文,秘钥) = 密文
decrypt(密文,秘钥) = 明文

就是用一个密钥进行加密和解密,传输过程中需要把密钥一起传输,这样不安全 非对称加密 是

encrypt(明文,公钥) = 密文
decrypt(密文,私钥) = 明文

就是用公钥进行加密,私钥进行解密,公钥由于只能加密,所以当截取到公钥也不能进行解密,只有服务器自己的私钥可以解密

HTTPS SSL/TSL TCP 客户端第一次握手,明文,向服务器发出请求。服务器发ACK和SYN确认连接, 客户端发送ACK确认SYN,和一些SSL/TSL的请求数据配置项, server端发布自己的证书,公钥,+要求客户端证书 客户端发送自己的证书,使用服务器公钥和协商的加密套件加密一个对称秘钥 服务端使用私钥解密出对称秘钥(随机值)后,发送加密的Finish消息,表明完成握手