使用HTTP流水线的缺点是什么?

时间:2013-02-11 11:01:19

标签: http http-pipelining

WWDC 2012 session 706 - Networking Best Practices解释HTTP Pipelining

  • iOS上的默认its disabled
  • 在演讲中,它将其描述为一场巨大的表演胜利。

为什么你不想使用它?

pipelining

1 个答案:

答案 0 :(得分:76)

实施错误

要使流水线工作,响应必须按照请求的顺序返回。一个天真的服务器实现可能只是在计算后立即发送响应。如果并行发送多个请求,并且第一个请求需要更长的时间来处理(例如处理更大的图像),那么响应将会出现故障。

这是客户端的问题,因为HTTP是无状态协议,客户端无法将请求与响应进行匹配。它依赖于回复的顺序。

  

A server MUST send its responses to those requests in the same order that the requests were received.

性能问题

即使服务器正确支持流水线操作,也会出现性能问题,因为所有后续请求都必须等待第一个请求完成(行头阻塞)。

Head of line blocking

总而言之,HTTP流水线操作的问题是:

  • 一些服务器& most proxies不支持它。 (可能是出于安全性/可靠性/或性能问题)
  • 某些服务器支持错误,这可能会导致客户端错误。
  • 这不一定是表演胜利。
  • 易受阻挡线堵塞