转移编码:分块

时间:2013-11-11 13:31:14

标签: http tomcat http-headers websphere transfer-encoding

我试图在Transfer-Encoding:chunked上了解更多信息。提到一些文章: http://zoompf.com/blog/2012/05/too-chunky"Transfer-Encoding: chunked" header in PHP

我仍然没有得到非常清晰的画面。我理解设置此编码允许服务器将块中的内容设置为浏览器,并在使网站响应的同时导致部分内容呈现。

如果我在IBM WAS上托管了一个提供动态内容的Web应用程序(例如:基于JSF的Web应用程序),那么大多数网页都设计为服务器丰富的静态内容,包含大量的CSS和JS文件+动态内容。如何为我的页面设置transfer-encoding'chunked'?换句话说:

  • 您如何确定哪个页面会'Transfer-Encoding: chunked',以及如何为该页面设置该页面?

您的个人经历对我的理解肯定是有价值的。

2 个答案:

答案 0 :(得分:35)

渐进式渲染不需要

Transfer-Encoding: chunked。但是,在发送第一个字节之前,如果总内容长度未知,则需要

答案 1 :(得分:6)

当服务器需要发送大量数据时,服务器会使用分块编码,因为它并不确切知道数据的大小(长度)。在HTTP术语中,当服务器发送响应时,服务器省略Content-Length头。相反,服务器以十六进制格式写入当前块的长度,然后是\ r \ n,然后是块,然后是\ r \ n(内容以十六进制的块大小开头,后跟块)

此功能可用于渐进式渲染;但是服务器需要尽可能地刷新数据,以便客户端可以逐步呈现内容(如果是html,css等)

当服务器大量向客户端推送数据时,通常会使用此功能 - 通常是大尺寸(兆/千兆)

Mozilla Documentation