4

我试图弄清楚在发送 multipart/xmixed-replace 响应时是否可以减慢服务器速度。我希望我的客户尝试对运动 jpeg 流进行速率限制。我发现了很多关于服务器在 HTTP 响应中发送什么的文档,但没有关于客户端发送什么的文档。

在 multipart/x-mixed-replace 响应中的每个部分之后,客户端会发送什么(如果有的话)?如果它不发送任何东西,服务器是否只是继续堆积零件?

4

3 回答 3

1

实际上,我认为 multipart 的东西是一个红鲱鱼,因为 multipart 的概念只是在同一消息正文中描述内容类型。因此,从服务器的角度来看(就发送内容的速率而言),它与发送一大块数据并没有真正的不同。

所以,我想知道您是否可以 Range 标头只请求一个特定的范围——一次一个“部分”。

从响应头的末尾开始计算字节数。当您到达第一部分的末尾时,请注意读取的字节数并关闭连接。发送对同一文档的请求,但将起始范围指定为块末尾的字节。再次读取响应,当您到达部分末尾时,将当前响应字节添加到前一个字节,关闭连接并重复令人作呕...

还没有尝试过,但如果服务器支持范围标头并且您能够在客户端进行一些修补,听起来它会起作用。

编写一个通过丢弃数据包来限制速率的客户端代理可能更容易......

于 2009-01-10T19:47:52.217 回答
0

尝试使用 Mozilla 的 LiveHTTPHeaders 插件。我去了 Gmail(它使用 AJAX)并跟踪了客户端和服务器之间的对话几分钟。看来这可以帮助你。

于 2009-01-10T13:19:13.967 回答
0

在 HTTP 级别,我认为客户端不会发送任何内容。服务器假定只要连接打开,它就可以继续发送响应。

我认为这个问题没有简单的 HTTP 级解决方案,因为客户端-服务器交换中没有“ack”概念。

对于这个问题,显然有 TCP-/IP 级别的解决方案。

我想知道当客户端实际接收到服务器的响应标头并识别出响应是多部分的时,它是否可以做一些不同的事情 - 然后它是否可以中止连接并打开一个新的非保持活动状态,然后一个接一个地获取这些部分...

于 2009-01-10T19:31:07.947 回答