![何时下载才会被注册为此类下载?](https://linux22.com/image/1579410/%E4%BD%95%E6%97%B6%E4%B8%8B%E8%BD%BD%E6%89%8D%E4%BC%9A%E8%A2%AB%E6%B3%A8%E5%86%8C%E4%B8%BA%E6%AD%A4%E7%B1%BB%E4%B8%8B%E8%BD%BD%EF%BC%9F.png)
在 Google 图片上查看图片时,可能会意外点击“将图片另存为”或“查看图片”(有时也会提示下载)。然后会打开一个窗口询问您是否要下载该文件。但是,如果您在保存任何内容之前取消,这是否仍被视为从“服务器”端下载?由于我对这个主题不太熟悉,我使用的“服务器”仅涵盖可能记录/保存该活动的任何实体。
答案1
从服务器端来看,绝对有不“传输以在浏览器窗口中查看”和“下载以存储”之间的技术差异。
也许服务器会提供(较小的)预览和(较大的)实际图像供下载,并能区分哪个已被访问。但它只能注册(并记录)对这些文件的访问、请求来自的 IP 地址、浏览器软件的通用“ID 字符串”——不是客户的意图。
但文件访问却不行总是人类与客户端计算机交互的结果。一方面,即使您不使用“将图像另存为...”,浏览器也会将图像和其他网站数据存储在您的系统上。另一方面,许多浏览器甚至会“跟踪链接”(即:下载内容!)提前,以加快导航速度。这样,浏览器缓存甚至可能进入您的本地备份,即使您从未故意访问过这些文件!
最后,使用“另存为”并取消(不选择目标文件名)可能会或可能不会启动下载,这取决于您使用的浏览器的实现。
答案2
由于我对这个主题不是很熟悉,我使用的“服务器”仅涵盖可能记录/观看/保存所述活动的任何实体。
虽然 HTTP 服务器看不到取消的下载,但页面上可能有监控此类事件的 Javascript 代码。
Javascript 具有事件处理程序,可用于检测图像上的右键单击,并且很可能可以监视其他鼠标移动以猜测您从弹出菜单中做出的选择。之后,脚本可以轻松地立即将信息发送到服务器,或将其存储在本地浏览器存储中并稍后发送。
在 Google 图片搜索这个具体案例中,该页面上的 Javascript 确实有多个处理程序监听鼠标事件。但是代码被混淆了,因此很难判断它执行的是哪种监控。
答案3
这取决于服务器。
当下载开始时,服务器将能够注册(想一想,它必须知道,因为它建议了一个名字)。
服务器还可以跟踪传输了多少字节以及连接是否/何时关闭,从而可以显示下载是否完成。
还有其他可能性,例如恢复下载和多线程下载 - 但同样,服务器可以知道并记录所有这些。
请注意,在右键单击并下载图像的特定情况下,由于客户端缓存,下载可能根本不会注册为下载。
答案4
如果...在保存任何内容之前取消,“服务器”是否会注意到/记录此为下载?
远程服务器不应该注意到任何下载活动,因为尚未开始下载。
然而,远程服务器知道你已经下载了图片以便在您的浏览器中显示它...并且副本将保存在您的浏览器缓存中...
任何直接监视您本地机器的“实体”都可以记录有关该活动的一些信息。