我正在努力保证文件传输。我想我可以通过某种校验和来做到这一点。
另外,由于一些内在问题,我需要使用流式传输。
我考虑过在传输之前和之后计算摘要,但错误只会在传输结束时出现。我正在寻找某种分块的校验和,如果有任何错误,可以重新发送。
有什么建议吗?
谢谢!
答案 0 :(得分:1)
我认为您将不得不在堆栈中的更高级别执行某些操作 - HTTP无法在流中重新传输部分响应。客户端发出HTTP请求后,必须先收到整个HTTP响应才能发出其他请求。 HTTP分块主要是为了促进保持连接,而不必提前计算响应的内容长度。
如果我们在这里谈论自定义客户端和服务器(我假设我们是因为如果你谈论浏览器这个问题没有意义)那么可能有一种方法可以用于服务器将文件分成几部分并让客户端使用保持连接连接一次请求一个文件。如果您为响应中的每个部分(即在ETag标头中)发回校验和,则可以计算客户端上的校验和以确保收到正确的字节。如果校验和不匹配,只需让客户端请求重新组合。