网友提问:使用谷歌浏览器点击某些网站的下载链接时,谷歌浏览器会突然闪烁亿下但是并没有下载对应的文件。
如果继续点击该链接还会继续出现闪烁同样的文件并未下载,为什么会出现这种情况以及遇到这种情况如何解决?
这位网友提的到问题蓝点网也遇到过不少次,而且以前并没有这种情况,最近出现这种情况的几率似乎有所提升。
出现这种情况的原因是谷歌浏览器出现问题了吗?显然不是:这实际上是谷歌浏览器新版本执行的默认安全策略。
简单来说就是目标网站使用混合内容导致的,即网站使用HTTPS加密连接 、但下载链接使用的是HTTP明文连接。
为说明这种情况蓝点网特地制作一个简单的演示页面:https://wsoso.com/net/browser-download-test.html
这个页面本身使用HTTPS加密连接,页面上的两个下载地址分别采用HTTPS加密传输协议和HTTP明文传输协议。
当你使用谷歌浏览器点击HTTPS开头的下载链接时,此时谷歌浏览器会正常弹出landian.0 文件的系统保存窗口。
当你使用谷歌浏览器点击HTTP开头的下载链接时,谷歌浏览器会直接闪烁下但是并没有正常下载landian.0文件。
如果我们手动复制HTTP开头的下载连接粘贴到谷歌浏览器地址栏并按回车 ,此时谷歌浏览器又可以正常的下载。
点击HTTP链接时浏览器闪烁但不会下载文件
点HTTPS链接则会弹出文件下载对话框
按谷歌浏览器要求如果网站采用加密传输协议则网站上的所有资源都应该采用加密,包括脚本、图片和样式表等。
同时如果有超链接尤其是指向文件的下载链接,那这个链接应该也采用加密传输协议、不应该采用明文传输协议。
如果此链接采用明文传输协议则用户点击时会被谷歌浏览器自动拦截,这也是谷歌为何闪烁一下并未下载的原因。
闪烁的原因是谷歌在新窗口中打开此下载链接,但是因为明文内容被拦截所以闪烁之后并没有出现下载的提示栏。
如果是采用加密传输协议的下载链接则谷歌浏览器可以正常打开,此时还会闪烁下然后弹出下载对话框进行确认。
如果用户遇到这种情况也只需要手动复制下载链接,然后直接在地址栏粘贴并回车即可正常下载对应的目标文件。
为什么手动复制又可以了:手动复制的链接网域本身是 HTTP 开头 , 所以此时下载HTTP文件是被谷歌所允许的。
也就是说HTTPS页面下载HTTP内容会被拦截 、HTTP页面下载HTTP内容允许 、HTTP页面下载HTTPS内容允许。
目前微软浏览器似乎还未采用此策略,火狐浏览器将在后续版本启用此策略,所以以后用户遇到这种情况会更多。
因为很多网站的历史资源并未使用加密传输,例如国内多数下载站的普通下载链接都是明文的所以经常会有闪烁。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/94463.html