设置防盗链时候指明和不指明空Referer的差别及实现后的效果?
什么是Referer?
这里的 Referer 指的是HTTP头部的一个字段,也称为HTTP来源地址(HTTP Referer)。用来表示从哪儿链接到眼下的网页。採用的格式是URL。
换句话说,借着 HTTP Referer 头部网页能够检查訪客从哪里而来。这也常被用来对付伪造的跨站点请求。
Referer的正确英语拼法是referrer。因为早期HTTP规范的拼写错误,为了保持向后兼容就将错就错了。其他网络技术的规范企图修正此问题。使用正确拼法,所以眼下拼法不统一。
比方,您假设点击以下资料来源后面*的网址链接。那么浏览器会产生一个送到*的Webserver的HTTP请求,该请求中则会包括一个Referer字段(即本页面的地址):http://kb.qiniu.com/52pw6cde
资料来源:http://zh.wikipedia.org/wiki/HTTP參照位址
什么是空Referer,什么时候会出现空Referer?
首先,我们对空Referer的定义为。Referer 头部的内容为空,或者,一个HTTP请求中根本不包括Referer头部。
那么什么时候HTTP请求会不包括Referer字段呢?依据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并非由链接触发产生的。那么自然也就不须要指定这个请求的链接来源。
比方,直接在浏览器的地址栏中输入一个资源的URL地址。那么这样的请求是不会包括Referer字段的,由于这是一个“凭空产生”的HTTP请求,并非从一个地方链接过去的。
那么在防盗链设置中,同意空Referer和不同意空Referer有什么差别?
在防盗链的白名单设置中,假设指名白名单中包括空的Referer,那么通过浏览器地址栏直接訪问该资源URL是能够訪问到的;
但假设不指名须要包括空的Referer,那么通过浏览器直接訪问也是被禁止的。