HTTP/2

HTTP/2核心

二进制帧

HTTP 2.0中所有加强性能的核心带你在于此--二进制传输

之前的HTTP/1的版本中,传输数据方式--文本传输

在 HTTP 2.0 中,有两个非常重要的概念,分别是帧(frame)流(stream)
代表着最小的数据单位,每个帧会标识出该帧属于哪个流,
是一个或多个帧组成的数据流。

流的优先级: HTTP/2 允许为每个数据流设置优先级。服务器和客户端可以指定数据流的优先级,以确保重要的数据流能够更早地得到服务

多路复用

允许在同一个链接上发送多个流,且每个流都有唯一流ID,不同的数据流的帧可以交错传输,而不需要等待一个数据流的帧全部传输完毕。这允许更高效的利用网络资源,通过这个技术,可以避免 HTTP 旧版本中的队头阻塞问题,极大的提高传输性能。

header压缩

在HTTP/1.x中,请求和响应头部始终是以纯文本方式传输,而不能被压缩的。这样每个请求和响应都会增加一些开销,特别是在启用了cookie的时候,可能每次会要增加几k字节的开销。

在 HTTP 2.0 中,使用了 HPACK压缩格式 对传输的 header 进行压缩,减小了每个请求和响应的头部大小。并在两端维护了索引表,用于记录出现过的 header ,后面在传输过程中就可以传输已经记录过的 header 的键名,对端收到数据后就可以通过键名找到对应的值

server服务端push

服务端推送数据都是由PUSH_PROMISE帧发起的,它标明了服务端推送的资源的意图,并且该帧要在请求推送资源的响应帧之前传输。这个做法应该是比较好理解的,因为这样能避免客户端重复请求服务端主动推送的数据。服务端推送的使用方式由客户端掌握主动权,客户端可以限制并行推送的数量、调整流控窗口、或者禁用服务端推送。这些优先级都是在连接建立初期通过SETTINGS帧传输的,后续也可以随时更新

quic协议基于udp

相关推荐
melck11 分钟前
liunx日志查询常用命令总结
java·服务器·网络
【云轩】1 小时前
《混沌钟的RISC-V指令集重构》
网络·安全
EasyGBS1 小时前
视频设备轨迹回放平台EasyCVR打造视频智能融合新平台,驱动智慧机场迈向数字新时代
网络·人工智能·安全·音视频
EasyGBS2 小时前
视频设备轨迹回放平台EasyCVR综合智能化,搭建运动场体育赛事直播方案
网络·安全·音视频
低头不见5 小时前
tcp的粘包拆包问题,如何解决?
网络·网络协议·tcp/ip
SKYDROID云卓小助手6 小时前
三轴云台之相机技术篇
运维·服务器·网络·数码相机·音视频
yuzhangfeng8 小时前
【云计算物理网络】从传统网络到SDN:云计算的网络演进之路
网络·云计算
TDengine (老段)9 小时前
TDengine 中的关联查询
大数据·javascript·网络·物联网·时序数据库·tdengine·iotdb