很长一段时间以来,我一直认为只要在服务器上没有损坏的http协议的实现是正确的,就不可能通过http下载损坏的文件,这在现代主流软件中很可能是这种情况。
因此,当我看到一个下载站点提供他们提供的要下载文件的md5哈希值时,我总是会为之轻笑。我以前没有看到过这样的情况:我下载了文件,大小正确但内容不正确。
好吧,今天,我有了第一个案例。我下载了一个Ubuntu的iso版本,尝试安装它,但失败了,经过长时间的研究(我简直不敢相信原因可能是下载损坏),我检查了MD5,您知道吗,那是错误的(大小是正确)。所以我重新下载了它,然后又得到了另一个错误的md5。只有在我的第三次下载中,md5才是正确的。
所以我的问题是,假设实现正确,传输成功完成并且服务器上的文件正确,原则上是否有可能通过http下载损坏的文件。如果这是可能的,那怎么会发生呢?