0

我需要通过 HTTP 向移动应用程序(例如 android、iphone 等)提供法律文件。通过 http 可能会发生损坏(参考:12)。就我而言,下载的文件在传输过程中必须没有损坏。

确保完整性的一种机制是对文档进行数字签名。如果文档是 xml,则此方法效果很好,但是签名公钥将需要客户端可用且受信任。

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

  • 问题 1:是否有任何其他替代机制来确保完整性?
  • 问题 2: http 是否有任何内置机制可以确保下载的数据在下载过程中没有损坏?
  • 问题 3:通过 HTTP 下载期间文档损坏的静态可能性是多少(我希望这个答案得到统计数据的支持)?
4

1 回答 1

2

据我所知,HTTP 本身没有任何内置校验和机制,您的建议将有助于确保数据有效。问题是,HTTP 通常是在传输控制协议 (TCP) 上实现的。TCP提供主机之间 的可靠通信。

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

但是,如果设备上的 HTTP 实现实际上是在用户数据报协议 (UDP) 之上运行的,那么它是不可靠的,但是设备不太可能使用 UDP 进行 HTTP 或至少是不可靠的版本(因为有可靠的用户数据报协议)。

现在,我根本找不到有关 HTTP 请求损坏的统计信息或太多信息。根据您认为这是多么重要的任务,将其视为当时会发生的事情。提到下载文件 最终 会损坏。虽然这些似乎主要与 ZIP 文件有关,但我认为这不是由于 HTTP,而是由于其他原因,例如正在下载和破坏信息的设备本身。

也许在您的场景中,如果您的信息以一体方式到达绝对至关重要,那么最好添加您的校验和。

于 2013-08-05T09:37:13.467 回答