RFC 2616第 8.1.2.2 节指出:
支持持久连接的客户端可以“管道”其请求(即,发送多个请求而不等待每个响应)。服务器必须以与接收请求相同的顺序发送对这些请求的响应。
串行响应通常弊大于利,因为串行响应实际上需要服务器进行更多处理,并抵消了流水线带来的性能优势。
例如,如果 HTTP 客户端请求文件 1.jpg、2.jpg、3.jpg、4.jpg 和 5.jpg,则无论 3.jpg 在 1.jpg 之前返回,还是 4 .jpg 在 3.jpg 之前返回。客户只希望响应可用,以任何顺序。
HTTP 客户端如何获得流水线的好处,同时又不为响应队列的缺点买单?