转移编码:分块

问题描述 投票:41回答:2

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

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

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

  • 你如何决定哪个页面将有'Transfer-Encoding: chunked'以及如何为该页面设置它?

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

http tomcat http-headers websphere transfer-encoding
2个回答
35
投票

渐进式渲染不需要Transfer-Encoding: chunked。但是,在发送第一个字节之前未知总内容长度时需要它。


6
投票

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

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

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

Mozilla Documentation

© www.soinside.com 2019 - 2024. All rights reserved.