许多用户在浏览网页时遇到过这样的问题:一张图片在当前浏览器中可以正常显示,但复制其链接在新浏览器中打开却提示404。例如,在某个图片网站上,图片在原页面可以正常查看,但直接复制链接到新标签页或其他浏览器却无法访问。而使用浏览器右键菜单的“在新标签页中打开图片”功能却能正常显示。这是怎么回事呢?
这通常是因为网站采用了防盗链机制。服务器会检查HTTP请求中的Referer头部信息,该信息包含了发出请求的页面的URL。当您直接在浏览器地址栏输入图片链接时,请求中通常缺少或包含不正确的Referer信息,服务器会拒绝访问并返回404错误。而通过右键菜单打开图片,浏览器会自动添加正确的Referer信息,从而绕过防盗链机制。
让我们用curl命令模拟一下:
curl -sI -e 'https://www.example.com/image-page.html' https://www.example.com/images/image.jpg
这里,-e 'https://www.example.com/image-page.html' 指定了Referer头部信息。如果服务器使用了防盗链,只有包含正确Referer信息的请求才能成功获取图片。 如果没有这个选项,或者Referer信息不正确,服务器很可能返回404错误。
因此,问题根源在于Referer头部的缺失或错误。 解决方法取决于具体情况,对于普通用户来说,通常无法直接修改Referer信息。 而对于爬虫开发者来说,需要在代码中正确设置Referer头部,以确保能够正确下载图片。 这需要根据目标网站的防盗链策略进行调整。
以上就是网站图片链接在新浏览器中显示404,是什么原因导致的?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号