确保下载数据的HTTP机制在下载过程中没有被破坏?

时间:2013-08-05 09:17:32

标签: http checksum

我要求通过HTTP向移动应用程序(例如android,iphone等)提供法律文件。可以通过http(引用:12)进行损坏。在我的情况下,下载的文件在传输过程中没有被破坏是必要的。

确保完整性的一种机制是对文档进行数字签名。如果文档是xml,这种方法很有效,但是签名公钥需要由客户端提供和信任。

另一种机制是创建和存储文档的校验和(例如MD5)。客户端可以下载文档和校验和,然后使用校验和来验证文档。

  • 问题1:是否还有其他替代机制来确保完整性?
  • 问题2: http是否有内置机制确保下载过程中下载的数据没有损坏?
  • 问题3:通过HTTP下载期间文档损坏的静态可能性是什么(我希望此答案可以通过统计数据进行备份)?

1 个答案:

答案 0 :(得分:2)

据我所知,HTTP itself does not have any built-in checksum mechanism和您的建议可以确保数据有效。但问题是HTTP is generally implemented on the Transmission Control Protocol (TCP)。主机之间的TCP provides reliable通信。

具体来说,TCP本身实现错误检测(使用checksum)并使用特殊数字序列来确保数据按照发送顺序到达。如果发送数据的主机收到接收主机没有获得数据的信息,它将重新发送。

但是,如果设备上的HTTP实现实际上是在用户数据报协议(UDP)it isn't reliable之上运行,则设备不太可能使用UDP进行HTTP或至少使用不可靠的版本(如有一个Reliable User Datagram Protocol)。

现在,我找不到有关HTTP请求损坏的统计信息或大量信息。根据你认为的关键任务的重要性,对待它就像它会发生的那样。提到downloading files that end up being corrupt。虽然这些似乎与ZIP文件有关,但我不认为这是由于HTTP,而是其他内容,如下载和破坏信息的设备本身。

也许在您的场景中,最好添加校验和,如果您的信息单件到达绝对非常重要。