应业务需求:
问题: 文章列表数据中的好多图片资源请求失败,返回403
原因:
这是因为我们项目的接口数据是后端通过爬虫抓取的第三方平台内容,而第三方平台对图片资源做了防盗链保护处理。
第三方平台怎么处理图片资源保护:
服务端一般使用 Referer 请求头识别访问来源,然后处理资源访问
Referer 是什么东西,详情见阮一峰老师的博客
Referer: 介绍人,推荐人。谁引荐了你?对于公司来说,这是很有用的信息。
互联网也是一样,你不会无缘无故访问一个网页,总是有人告诉你,可以去那里看看。服务器也想知道,你的"引荐人"是谁?
HTTP 协议在请求(request)的头信息里面,设计了一个Referer字段,给出"引荐网页"的 URL。
Referer 是 HTTP 请求头的一部分,当浏览器向 Web 服务器发送请求的时候,一般会带上 Referer,它包含了当前请求资源的来源页面的地址。服务端一般使用 Referer 请求头识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等。
出现此类问题怎么解决:
不要发送 referrer ,对方服务端就不知道你从哪来的了,姑且认为是你是自己人吧
如何设置不发送 referrer?
1、用 <a>、<area>、<img>、<iframe>、<script> 或者 <link> 元素上的
referrerpolicy 属性为其设置独立的请求策略,例如:
<img src="http://……" referrerPolicy="no-referrer">
2、或者直接在 HTMl 页面头中通过 meta 属性全局配置:
<meta name="referrer" content="no-referrer" />