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

相关推荐
wanhengidc1 天前
云手机可以息屏挂手游吗?
运维·网络·安全·游戏·智能手机
一只小白菜~1 天前
实战记录:H3C路由器IS-IS Level-1邻居建立与路由发布
运维·网络·计算机网络·智能路由器
kenwm1 天前
家庭网络异常降速问题排查处理方案
网络·智能路由器
搬码临时工1 天前
使用自定义固定公网URL地址远程访问公司内网OA办公系统,本地无需公网IP和专线让外网访问
网络·网络协议·tcp/ip
星马梦缘1 天前
计算机网络6 第六章 应用层——解决“怎么发请求、怎么回响应”的问题(邮件整体传输流程)
网络·计算机网络·域名·ftp·dns·dhcp
@CLoudbays_Martin111 天前
为什么动态视频业务内容不可以被CDN静态缓存?
java·运维·服务器·javascript·网络·python·php
东哥说-MES|从入门到精通1 天前
Mazak MTF 2025制造未来参观总结
大数据·网络·人工智能·制造·智能制造·数字化
sheepwjl1 天前
《嵌入式硬件(三):串口通信》
网络·嵌入式硬件·网络协议·串口通信
noravinsc1 天前
RPC和HTTP的区别?
网络协议·http·rpc
Jayyih1 天前
嵌入式系统学习DAY28(网络编程)
网络·学习·tcp/ip