多路复用

来源:7-3 探索式的实践-SPDY

enenhaha

2021-07-20

多路复用是怎么解决队头阻塞的问题呢?

写回答

1回答

风落几番

2021-07-30

HTTP的队头阻塞是因为HTTP管道化要求服务端必须按照请求发送的顺序返回响应,那如果一个响应返回延迟了,那么其后续的响应都会被延迟,直到队头的响应送达。那么我们就用HTTP2解决。HTTP2不使用管道化的方式,而是引入了帧、消息和数据流等概念,每个请求/响应被称为消息,每个消息都被拆分成若干个帧进行传输,每个帧都分配一个序号。每个帧在传输是属于一个数据流,而一个连接上可以存在多个流,各个帧在流和连接上独立传输,到达之后在组装成消息,这样就避免了请求/响应阻塞。

当然,即使使用HTTP2,如果HTTP2底层使用的是TCP协议,仍可能出现TCP队头阻塞。

针对TCP队头阻塞,我们只好考虑在未来HTTP3使用UDP的方式来改进。所以说,多路复用非管道化,能够解决的主要是HTTP队头阻塞的问题~


0
0

大话HTTP协议 漫画+图解打造的编程基础课程

HTTP,如水如空气。漫画+图解,学习成体系。

1839 学习 · 82 问题

查看课程