问题标签 [chunked-encoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
372 浏览

http - 如何停止在浏览器中缓冲流式彗星通信

我正在尝试使用 Comet“永久 iframe”将数据包从我的 HTTP 服务器推送到浏览器,并使用 Transfer-Encoding: chunked 标头从服务器提供脚本标签。我发现我的脚本标签没有立即被解释,我必须在浏览器开始响应它们之前发送一些块。在 IE8 的情况下,这似乎需要 256 字节的数据(我没有准确检查过),而在 Firefox 3.5.7 中,它似乎超过了 1 千字节。在连接关闭之前,我还没有设法让 Chrome 响应脚本标签。但是,在所有情况下,如果我结束分块数据(使用“0”块),任何缓冲的块都会被解释。我找到了一些参考Safari上的这种行为,但没有找到其他浏览器的任何此类信息。

我想知道的是如何在发送这些脚本标签时可靠地执行它们,而不会出现某种缓冲机制延迟它们的执行?

0 投票
2 回答
1839 浏览

post - 在 IIS 6 上对 asmx Web 服务的 POST 请求中使用分块编码会生成 404

我正在使用 CXF 客户端与在 IIS 6 上运行的 .net Web 服务进行通信。此请求(匿名):

后跟 7 个 4089 字节的块和一个 369 字节的块,在发送第一个块后生成以下输出:

任何人都知道如何让 IIS 接受 POST 的分块输入?

谢谢

0 投票
2 回答
8071 浏览

asp.net - 在 ASP.NET 中启用分块传输编码

我有一个位于 IIS7 上的 ASP.NET 3.5 网站。我正在使用动态压缩,想看看是否可以启用分块编码。IIS 或 Web 配置上是否有一些设置可以启用它?

0 投票
1 回答
1658 浏览

apache - Nginx 代理 http PUT 分块到 apache

Nginx 不支持分块请求,所以我正在尝试将我的 PUT 请求代理到 apache,但即使在代理时,似乎 nginx 也会阻塞并发送 411 错误。有什么方法可以让 nginx 按原样将这些请求发送到 apache 吗?

0 投票
3 回答
44603 浏览

performance - Content-Length 标头与分块编码

Content-Length我试图权衡设置HTTP 标头与使用分块编码从我的服务器返回 [可能] 大文件的利弊。需要一种或另一种来符合使用持久连接的 HTTP 1.1 规范。我看到Content-Length标题的优点是:

  • 下载对话框可以显示准确的进度条
  • 客户预先知道文件是否可能/可能不会太大而无法摄取

缺点是必须在返回对象之前计算大小,这并不总是实用的,并且可能会增加服务器/数据库的利用率。分块编码的缺点是在每个块和下载进度条之前添加块大小的开销很小。有什么想法吗?我可能没有想到的这两种方法的任何其他 HTTP 考虑因素?

0 投票
2 回答
1994 浏览

c - libevent2 中的分块响应

我正在尝试以这种方式在 libevent 中进行分块响应(大文件)::


问题是我觉得 add_file 是异步的,所以第三个左右evhttp_send_reply_chunk给了我一个错误(或类似的东西):

[警告] evhttp_send_chain Closed(45): 错误的文件描述符

MAX_READ_SIZE打算8实际测试分块传输编码。

我注意到有一种evhttp_request_set_chunked_cb (struct evhttp_request *, void(*cb)(struct evhttp_request *, void *)) 方法我可以使用,但找不到任何关于如何使用的示例。

例如,我如何将参数传递给回调?该参数似乎与传递给请求处理程序的参数相同,这不是我想要的,因为我想创建一个包含文件描述符和我发送的文件偏移量的对象。

感谢所有帮助。

在此先感谢

0 投票
9 回答
35099 浏览

php - 如何让 PHP 生成 Chunked 响应

我用谷歌搜索了这个问题,但没有答案。

我希望我的 PHP 脚本生成分块的 HTTP 响应(http://en.wikipedia.org/wiki/Chunked_transfer_encoding)。怎么做?

更新:我想通了。我必须指定传输编码标头并刷新它。

冲洗是必要的。否则,将生成 Content-Length 标头。

而且,我必须自己做块。有了辅助函数,这并不难。

0 投票
1 回答
1855 浏览

http - Win32:WinHttpReadData 中分块编码支持的状态如何?

WinHttpReadData的文档说,关于HTTP 的分块传输编码

从 Windows Vista 和 Windows Server 2008 开始,WinHttp 使应用程序能够对发送到服务器的数据执行分块传输编码。当 WinHttp 响应中存在 Transfer-Encoding 标头时,WinHttpReadData 在将数据提供给应用程序之前会剥离分块信息。

谁能破译这个?


Q1首先,此文本在 WinHttpReadData 页面上,用于...读取HTTP 客户端应用程序中的数据,特别是响应数据。所以当它说是什么意思

从 Windows Vista 和 Windows Server 2008 开始,WinHttp 使应用程序能够对发送到服务器的数据执行分块传输编码。

WinHttpReadData 函数不与发送到服务器的数据一起使用。服务器读取数据时使用它。

查阅WinHttpWriteData函数的文档,该函数用于数据作为 HTTP 请求的一部分发送到服务器,没有提到分块传输功能。


Q2假设我知道新的分块传输支持是多少,我如何获得这种支持? 它说它是 Vista 和 WS2008 上的新功能。如果我编写一个在 WS2003 上运行并使用 WinHttpReadData 的应用程序遇到分块响应或 WinHttpWriteData,并且它想要发送分块请求,会发生什么情况?

字里行间,这个文档是否说我需要链接到 Vista 时代的 Windows SDK 或更高版本中的 WinHttp.lib 才能获得进行分块编码的能力?或者在 WS2003 上真的不可能吗?换句话说,使用这个库进行分块传输的应用程序必须在指定的操作系统上运行?


这可能读起来像咆哮,但事实并非如此。我真的很想知道。

0 投票
1 回答
5496 浏览

tomcat - 分块问题时的Tomcat gzip

我的一项数据源服务遇到了一些问题。正如它在 HTTP 响应标头中所说,它在 Apache-Coyote/1.1 上运行。服务器使用 Transfer-Encoding: chunked 给出响应,这里是示例响应:

问题是当我请求服务器发送压缩请求时,它经常发送不完整的响应。我收到响应,看到收到的最后一个块,但是在解压缩后我看到响应是部分的。我从未见过在请求标头中关闭 gzip 的这种行为。

所以我的问题是:这是常见的tomcat问题吗?也许其中一个正在压缩的mod?或者也许它可能是某种代理问题?我不知道tomcat的版本或他们使用的gzip mod,但请随时询问,我会尝试询问我的服务提供商。

谢谢。

0 投票
4 回答
39321 浏览

asp.net - 如何在 ASP.NET 响应中将 Transfer-Encoding 设置为显式或隐式分块?

我可以简单地设置Transfer-Encoding标题吗?

在某个时候调用Response.Flush()会导致这种情况隐式发生吗?


编辑
不,我不能称之为Response.Headers.Add("Transfer-Encoding","anything"); 抛出。

还有其他建议吗?


相关:
在 ASP.NET 中启用分块传输编码