使用HTTP / 1.1 Pipelining发出多个请求

时间:2010-04-19 07:55:59

标签: language-agnostic http network-protocols

使用HTTP / 1.1管道传输时标准对发出多个请求有何看法,而不等待每个请求完成?服务器在实践中做了什么?

我问,因为我曾经尝试过编写一个客户端,该客户端会发出一批GET个多个文件的请求并记得收到错误。我不确定是否是由于我错误地发出了GET或需要等待每个请求完成才能发出下一个GET

1 个答案:

答案 0 :(得分:7)

流水线就是这样 - 在单个连接上“飞行中”有多个请求。

在开放的互联网上,流水线操作并不常见,因为少数服务器和中介机构没有做到正确,并且弄乱流水线操作的后果可能非常严重(例如,混淆对两个不同用户的回复。)

请记住,只有HTTP / 1.1支持流水线操作;如果您有HTTP / 1.0服务器或中间的1.0代理,它可能无法正常工作。

此外,流水线操作只能用于GET和HEAD等“幂等”方法; POST等不允许

请参阅:   http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-09#section-7.1.2.2