如何判断文件是否通过HTTP完全下载?

时间:2014-06-25 18:53:56

标签: http

如何判断文件是否通过HTTP完全下载?

如果您从服务器刷新了数据包,但用户仍在下载它们,该怎么办?不知道TCP FIN数据包看起来是否相同 - 用户是否已完成或已取消下载?

1 个答案:

答案 0 :(得分:1)

服务器无法知道客户端是否已收到所有字节。它所能做的只是发送和刷新字节,然后在没有使用HTTP keep-alive时关闭连接。客户负责:

  1. 检测字节的发送方式(正常,压缩,分块等),以便知道如何读取它们。

  2. 检测正在发送的字节数(如果数据以分块格式发送,它将无法预先检测到这一点。)

  3. 检测何时收到所有预期的字节,以便它可以停止读取。

  4. 因此,客户端,而不是服务器,知道它何时到达下载结束时间,以及下载过早中止的时间。如果客户已知/认为下载不完整,则可以始终重新查询服务器以查找文件元数据,并将其与文件已有,然后根据需要重新下载。