referer
的作用
包含当前请求页面的来源页面的地址,即当前页面是通过此来源页面的链接进入的。
举个例子:
页面https://wangxiaokai.vip/posts/rel-canonical/
中有一张图片juejin-seo-demo.png
图片的请求头如下:
服务器在接收到请求后,可以获知图片资源的请求的来源页面是https://wangxiaokai.vip/posts/rel-canonical/
什么情况下,referer
不会被发送
- 来源页面采用的协议为表示本地文件的"file"或者"data" URI
- 当前请求页面采用的是非安全协议(http),而来源页面采用的是安全协议(https)
referer的拼写问题
由于历史原因,技术人员对referrer
单词拼写错误, 为了保持向下兼容,所以将错就错,使用现在的单词referer
。
详见HTTP来源地址
实战 - 图片防盗链
location ~ .*\.(jpg|jpeg|gif|png|js|css)$
{
expires 30d;
access_log /dev/null;
valid_referers none blocked wangxiaokai.vip www.wangxiaokai.vip;
if ($invalid_referer){
return 404;
}
}
复制代码
如代码所示,通过配置nginx,可以对请求头referer
进行判断,当没有命中规则时,返回404
。
这样,可以节省带宽资源的消耗。