• HTTP/2是什么?和HTTP/1.1有什么不同?和SPDY有什么不同?


    HTTP/2简介

    HTTP/2 是超文本传输协议第2版,最初命名为 HTTP 2.0 ,其简称为 h2(基于TLS/1.2或以上版本的加密连接)或 h2c(非加密连接),是HTTP协议的的第二个主要版本,使用于万维网。

    HTTP/2 是HTTP协议自1999年 HTTP 1.1 的改进版RFC 2616发布后的首个更新,主要基于 SPDY 协议。它由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组进行开发。该组织于2014年12月将 HTTP/2 标准提议递交至IESG进行讨论,于2015年2月17日被批准。

    HTTP/2 标准于2015年5月以RFC 7540正式发表。HTTP/2 的标准化工作由Chrome、Opera、Firefox、Internet Explorer 11、Safari、Amazon Silk及Edge等浏览器提供支持。

    多数主流浏览器已经在2015年底支持了该协议。此外,根据W3Techs的数据,截至2021年10月,全球有46.5%的网站支持了HTTP/2。

    HTTP/2和HTTP/1.1的对比

    那么 HTTP/2 相对于 HTTP/1.1 到底有哪些具体变化呢?

    HTTP/2 采用二进制格式传输数据,而非 HTTP 1.1 的文本格式,二进制协议解析起来更高效。HTTP / 1 的请求和响应报文,都是由起始行,首部和实体正文(可选)组成,各部分之间以文本换行符分隔。HTTP/2 将请求和响应数据分割为更小的帧,并且它们采用二进制编码。

    HTTP/2 中,同域名下所有通信都在单个连接上完成,该连接可以承载任意数量的双向数据流。每个数据流都以消息的形式发送,而消息又由一个或多个帧组成。多个帧之间可以乱序发送,根据帧首部的流标识可以重新组装。

    多路复用,代替原来的序列和阻塞机制。所有就是请求的都是通过一个 TCP连接并发完成。 HTTP 1.1 中,如果想并发多个请求,必须使用多个 TCP 链接,且浏览器为了控制资源,还会对单个域名有 6-8个的TCP链接请求限制。同个域名只需要占用一个 TCP 连接,消除了因多个 TCP 连接而带来的延时和内存消耗。

    HTTP/2与SPDY的对比

    HTTP/2的开发基于SPDY进行跃进式改进。在诸多修改中,最显著的改进在于,HTTP/2使用了一份经过定制的压缩算法,基于霍夫曼编码,以此替代了SPDY的动态流压缩算法,以避免对协议的Oracle攻击——这一类攻击以CRIME为代表。此外,HTTP/2禁用了诸多加密包,以保证基于TLS的连接的前向安全。

    2015年9月,Google宣布了移除对SPDY支持的计划,拥抱HTTP/2,并将在Chrome 51中生效。

  • 相关阅读:
    18.webpack4之HMR
    eclipse中创建的Maven Module和Maven Project及其间区别
    【算法笔记】LCR 086. 分割回文串
    云计算(二):负载均衡概述
    GLTF-pipeline
    基于springboot+vue的商城系统(电商平台)(前后端分离)
    Flutter splash 屏幕
    食品商城网站设计—食品商城购物网站(8页) HTML+CSS+JavaScript 静态网页的制作
    利用互斥锁解决缓存击穿问题
    Java8实战-总结28
  • 原文地址:https://blog.csdn.net/m0_46425143/article/details/127993094