http各个版本协议区别

HTTP1.0、HTTP1.1、HTTP2 、HTTP3区别

  • HTTP1.1相比HTTP1.0:
    • 多种缓存处理的请求头
    • 增加Range支持分片资源传输
    • 增加Host头支持Host域名对应多个ip地址
    • 支持长连接(Connection: keep-alive)和请求流水线(Pipelining)处理(但是请求和响应报文的序列必须一致,有可能会导致队首阻塞),可以发送多个请求。
  • HTTP2相比HTTP1.1:
    • 头部压缩:客户端和服务端维护一个头部字典(哈夫曼编码等压缩算法),将重复的头部压缩字节。
    • 采用二进制编码,减少http数据包体积。
    • 多路复用,支持多个请求并发,通过给每个请求分配不同的stream,不存在队阻塞的问题。
    • 服务端推送。
  • HTTP3相比HTTP2:
    • 使用UDP协议,由于HTTP2采用TCP协议,如果一个stream的请求丢失,其余stream请求会因为等待重传而阻塞(需要等待所有序列的包到了才能组包,但是丢失的包和其他的stream没关系),使用UDP则不会产生影响。
    • QUIC协议:由于UDP无法保证可靠性,因此数据包的完整性需要靠顶上协议保证(超时重传等机制)
    • 可变ip和端口:QUIC协议自己设置了一个流标识用来表示某一个请求,而不是依靠TCP的四元组(目标地址、目标端口、源地址、源端口),因此就算端口号变了但是只要分配的流不变,可以认为是同一个客户端请求(例如4G信号切换到wifi)。

HTTPS原理 : 首先HTTPS可以说是不属于HTTP协议的,可以认为其是HTTP协议的应用协议,主要功能是为了保证信息的安全性。

  • 如何保证信息的安全性?使用加密算法,对于对称加密来说,需要让密钥在信道上传输,本身就不安全了,因此只能采用非对称加密,但是非对称加密算法计算太耗时间,因此非对称加密只用来加密传输对称密钥,只有就可以使用对称密钥通信。
  • 如何保证非对称密钥传输的安全性?对于客户端而言,获取得到服务端的公钥去加密自己的请求信息,首先要保证拿到的公钥是正确的,假如公钥是中间人伪造的,那中间人获得客户端的请求信息并伪造成客户端与服务器通信,因此需要对服务端的公钥进行验证,主要是需要对服务器的信息和其对应的公钥进行签名,而负责签名的机构就是CA机构,签名就是对服务端的信息和其公钥进行一个MD5,然后将这份原数据和MD5一起交由CA机构用它们的私钥加密。因此客户端可以通过对应CA机构的公钥去解密签名文件,比较MD5和原数据是否一致来判断证书是否可信。
  • 如何保证CA机构的公钥安全?由于我们需要拿到CA的公钥才能验证签名文件的正确,这又回到了之前保证服务端公钥正确的问题,我们需要验证CA机构的证书,因此CA机构也需要另一个机构去签名验证,这样层层嵌套就形成了证书链,最终会查询到我们系统自带的根证书。
  • 抓包软件的原理:通过安装自己的证书链,对客户端伪造成服务端,对服务端伪造成客户端。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值