前阵子迅雷发布了一款号称非常NB的产品——网页图片修复工具(测试版),专治各种红X图片(图片在网页中无法正常显示,因此显示为红X)。被红X图片败过心情的网友应该不在少数,要说这工具的确是非常有创意,不过也有部分网友直言不敢使用,这又是为何呢?
红X图片是如何再现的
我们也体验了下这款软件(适用于IE核心浏览器),按照官方的指引的,简简单单的一次点击,的确看到了许多论坛和网站中没有正常显示的图片。用四个字概括当时的心态:神奇至极。
小知识:红X图片的产生
通常来说,我们在网页上看到的图片,是浏览器从相应的网页代码中得到图片地址,随后浏览器将这个图片下载到硬盘上一个临时文件夹中,然后在屏幕上显示出这个已经下载的图片。如果因种种原因(如图片存放位置改变),浏览器在指定的图片地址找不到指定的图片时,就不能正确下载到这个图片,随之而来的结果,就是我们在浏览器中看到的红X号。
为何浏览器中无法正常显示的图片,这款小工具却能显示呢?难道它真的能化腐朽为神奇,化虚无为现实,化红X号为图片?抱着这样的疑问,我们使用了进程监控软件Process Monitor,用迅雷官方推荐的网页例子(http://helpbbs.xunlei.com/read.php?tid=174298)来分析这个软件。
从图片看,这是一个名为p_large_274K_23709g017015.jpg 的文件(请注意文件的类型和大小都是不可用,这从侧面证明了这个文件没有被IE正确地下载下来)。当点击图片上的修复按钮时,在Process Monitor中可以发现迅雷服务组件在系统后台新建了一个迅雷下载任务,任务对象是未能正确显示的图片。于此同时,迅雷向其服务器发出下载p_large_274K_23709g017015.jpg这个文件的请求。等待服务器的回应。服务器响应以后,迅雷开始下载这个文件,最后,当这个文件下载完毕后,迅雷的图片查看器尝试打开这个已经下载好的文件。
走到这步,我们可以通过以上的记录,尝试对这个工具的原理进行一窥:
1.这个软件通过调用迅雷的服务组件添加了一个迅雷的下载任务。任务内容是下载这个网址指向的图片。
2.迅雷在下载这个文件的时候,首先尝试从网站下载,如果下载失败就尝试从其他的网站上寻找这个图片资源。
3.迅雷客户端并不把这个下载当做一个被记录的任务,也没有安放在传统的下载目录TDDownload,而是在TDDownload下面新建了一个名为LiteViewCahce的文件夹,将下载到的文件存放在这个目录下。
4.迅雷随后调用自己的图片浏览器来打开这个刚刚下载的图像文件。
不得不说,这是一个非常天才的想法:用一个简单的思维,借助迅雷强大的资源作为后盾,尝试在互联网上寻找相同的资源,以实现缺失资源的再现,方便坐在电脑面前的我们看到红X后面的图像。
网友担忧:会扫描我浏览过的图片吗
既然这款软件的功能如此神奇,为何还有部分网友直言不敢使用呢?根本的原因在于对于图片来源的担忧。
担忧1:迅雷从哪里来下载到的这些图片?是从其他的网络服务器上搜索并下载的,还是从其他看过相同图片的用户机器上索引后下载出来的?如果是后者,用户的隐私是不是得到了一个很好的保护?
担忧2:是否在“盗链”别人的合法资源?我们知道一些网站的图片不能正确显示是为了防止外站盗链,而这个软件的行为就等于突破了这样的一个系统。图片的盗链对于一些大网站来说可能不是大问题,多数大型网站有着自己成熟的反盗链系统。可对于一些生存环境越来越差的中小网站来说,意外付出的流量可能让他们会叫苦连天。这个程序会如何控制盗链呢?
担忧3:只靠文件名靠谱吗?当这个目标图片的文件名是一个常见的数字或字符组合时(如001.JPG,Index.BMP等),相同名的图片资源非常多,而且图片资源各不相同。这个工具要如何判断哪个图片才是我们真正要浏览的图片呢?在我们进行的几次测试中,在特定的环境下,这个程序多次了下载到了错误的同文件名图片。
对于网友所担心的问题,我们也联系了迅雷的相关人员,截止发稿前,尚未得到迅雷方面的正式答复。我们也注意到这个小程序的安装界面非常简陋,甚至没有用户协议:程序在做什么,我们会面临怎么样的风险,没有任何的警示。艳照门之后,中国网民的安全意识已经大大提高。我们希望这款神奇的工具在推出正式版时能添加用户协议,明确风险和责任,让用户更加放心地使用。
当然,这个程序本身还是相当强大和优秀的,虽然测试阶段还存在一些Bug,但瑕不掩瑜,只要迅雷能够打消网友的上述担忧,相信这款小工具能很快风靡起来。