我要求通过HTTP向移动应用程序(例如android,iphone等)提供法律文件。可以通过http(引用:1,2)进行损坏。在我的情况下,下载的文件在传输过程中没有被破坏是必要的。
确保完整性的一种机制是对文档进行数字签名。如果文档是xml,这种方法很有效,但是签名公钥需要由客户端提供和信任。
另一种机制是创建和存储文档的校验和(例如MD5)。客户端可以下载文档和校验和,然后使用校验和来验证文档。
答案 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,而是其他内容,如下载和破坏信息的设备本身。
也许在您的场景中,最好添加校验和,如果您的信息单件到达绝对非常重要。