为什么下载时,网络错误会导致下载完成并创建不完整的文件?
下载程序难道不应该能够识别文件很大X
并且只下载了Y
这么多吗?
我假设它是一个知道文件大小的下载。
答案1
许多传输机制并不知道它们正在下载的文件的大小。请查看此相关的 SU 问题:为什么有些下载文件不知道自己大小?
此外,传输机制不知道数据是什么应该在文件中;因此它不知道1
刚刚读取的下载内容是否实际上是1
在源中,或者是否是1
由于传输过程中的损坏造成的。
如果下载流遇到过多重试、超时或其他可识别的转移错误,则传输停止。由于下载机制会在下载流到达时保存它,因此它会一直写入文件直到传入流停止,无论它停止的原因是什么。在已知传输失败后,是否保留该不完整文件取决于所使用的客户端/机制。