http与http2对比

http演变历史

http0.9于1991发布
http1.0于1995发布
http1.1于1999发布
http2.0于2015发布

http相关优化

影响http的快慢两个主要因素

  • 带宽
    目前带宽速度基本不缺,现在到处是百兆宽带 百兆光纤 千兆光纤
  • 延迟
    延迟是目前还可以优化的主要部分
  1. 浏览器阻塞,浏览器对于同一个域名同时请求个数是有限制,根据浏览器内核不同,限制请求个数是不一,但基本是个位数,超过请求个数就会阻塞,必须等前面的请求完成
  2. DNS查询,域名解析是比较费时的,但通常可以利用DNS缓存来减少域名解析时间,DNS查询顺序为:浏览器缓存-电脑hosts文件-本地DNS服务器-根域名服务器-顶级域名服务器
  3. 建立连接,http是基于tcp的,每次建立连接需要进行三次握手和四次挥手

http1.0对比http1.1

  • http1.1支持了长连接,在一个tcp连接上支持多个http请求,减少了建立和关闭连接所花费的时间
  • http1.1增加了更多的缓存策略,比E-Tag、If-None-Match,http1.0使用的是last-modified、If-Modified-Since
    http与http2对比_第1张图片

http1.0和http1.1现存的问题

  1. 每一次传输数据都需要重新建立连接,延迟较多
  2. 传输均为明文,客户端和服务端均无法验证双方身份,存在一定的数据安全
  3. 请求的header部分内容较大,增加传输成本,且很多时候header部分是不变的
  4. 虽然http1.1有长连接的功能,但长连接使用过多也给服务端带来了更大的性能压力,特别是对于一些图片类视频类等资源型的服务器,如果长期保持长连接他是没必要的,但给服务器是大的性能浪费

为了解决安全性问题

为了解决安全性问题就出现了https,https是http协议和ssl协议的组合使用
http与http2对比_第2张图片

http2.0的出现

新特性

  • 采用新的二进制格式,http1.1的格式是基于文本的,基于的文本的解析考虑场景是较为复杂的,因为文本表现是多样的。而http2.0采用的是二进制,只有0和1,解析较为方便
  • 多路复用,即可以共享连接,不需要重复多次建立连接,多个请求可共用一个tcp连接
  • header压缩和缓存
  • 服务端推送,支持服务器主动向客户端推送消息
    http与http2对比_第3张图片

你可能感兴趣的:(http,http2,前端)