0

我试图保证文件传输。我想我可以用某种校验和来做到这一点。

另外,由于一些内部问题,我需要使用流媒体来完成。

我想在传输之前和之后计算摘要,但错误只会在传输结束时出现。我正在寻找某种分块校验和,如果有任何错误,请重新发送。

有什么建议吗?

谢谢!

4

1 回答 1

1

我认为您将不得不在堆栈中的更高级别做一些事情 - HTTP 没有能力在中途重新传输部分响应。一旦客户端发出 HTTP 请求,它必须接收整个 HTTP 响应才能发出另一个请求。HTTP 分块主要是为了促进保持活动连接,而不必提前计算响应的内容长度。

如果我们在这里谈论的是自定义客户端和服务器(我假设我们是这样,因为如果您谈论的是浏览器,这个问题就没有意义)那么也许一种方法是让服务器切断文件分成几部分,并让客户端使用保持活动连接一次请求文件的每一部分。如果您在响应中(即在 ETag 标头中)发回每个部分的校验和,您可以在客户端计算校验和以确保您收到正确的字节。如果校验和不匹配,只需让客户端再次请求该块。

于 2010-07-20T23:08:35.840 回答