二、JSP常用小知识之http 403错误
(一)问题表现
我参与的项目中,首页有几个栏目都需要访问豆瓣图片:
其他栏目如上图所示,都显示正常,就最新上架这里出了问题。经过测试,发现一旦我在请求头中加了“refer”,就会出现403错误:
(二)原因分析
Http协议头中的Referer主要用来让服务器判断来源页面, 即用户是从哪个页面来的,通常被网站用来统计用户来源,是从搜索页面来的,还是从其他网站链接过来,或是从书签等访问,以便网站合理定位.
Referer有时也被用作防盗链, 即下载时判断来源地址是不是在网站域名之内, 否则就不能下载或显示!很多网站,如天涯就是通过Referer页面来判断用户是否能够下载图片。
上述分析可知,由于项目首页在访问豆瓣图片时,豆瓣服务器根据我们请求头中的“refer”判断出,我们不是豆瓣内部请求,所以拒绝了我们的访问。
(三)解决办法
1.临时解决办法
在引用图片的标签中,比如“<img>和<a>
”标签中,我们可以设置“rel”属性:rel="noreferrer"
,这样请求头中将不带有“refer”
2.根本解决办法
将所有的图片下载下来,然后传到自己的云存储中,一劳永逸!