如何判断文件是否通过HTTP
完全下载?
如果您从服务器刷新了数据包,但用户仍在下载它们,该怎么办?不知道TCP FIN
数据包看起来是否相同 - 用户是否已完成或已取消下载?
答案 0 :(得分:1)
服务器无法知道客户端是否已收到所有字节。它所能做的只是发送和刷新字节,然后在没有使用HTTP keep-alive时关闭连接。客户负责:
检测字节的发送方式(正常,压缩,分块等),以便知道如何读取它们。
检测正在发送的字节数(如果数据以分块格式发送,它将无法预先检测到这一点。)
检测何时收到所有预期的字节,以便它可以停止读取。
因此,客户端,而不是服务器,知道它何时到达下载结束时间,以及下载过早中止的时间。如果客户已知/认为下载不完整,则可以始终重新查询服务器以查找文件元数据,并将其与文件已有,然后根据需要重新下载。