Web服务器 - 我应该何时使用分块传输编码?

时间:2009-05-08 23:04:41

标签: apache encoding webserver chunked-encoding

查看各种Web服务器HTTP Headers,我注意到Google.com有:

client-transfer-encoding: "chunked"

什么是chuncked传输编码,我应该在我的网络服务器上使用它吗?

1 个答案:

答案 0 :(得分:1)

Chunked可用于在多个部分中发送HTTP请求或响应,并在后续部分不可用时发送一个部分。

可以通过单个HTTP连接传输多个请求 - 响应对。 (这是为了避免后续请求的TCP connect()开销。)为实现这一点,客户端需要知道服务器响应的结束位置。如果服务器生成 Content-Length 标头,则客户端可以倒计数字节。当没有剩余的字节要读取时,客户端可以发起下一个请求。但是,如果服务器事先不知道完整响应的长度,它将如何生成 Content-Length 标头?解决方案是使用 chunked 而不是 Content-Length

Apache(1.3和2)默认情况下,只要有意义(并且HTTP客户端支持),就会将静态文件作为 chunked 发送。您不必采取任何行动。如果您编写自己的Web应用程序,可以考虑手动生成分块响应。

请再次查看http://www.research.att.com/~bala/papers/h0vh1.htmlhttp://developers.sun.com/mobility/midp/questions/chunking/