HTTP 请求头部 referer

原文地址:https://www.sojson.com/blog/58.html

HTTP 请求头部 referer

概述

  referer 是  HTTP  请求头部的一部分。当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含  Referer 。Referer的的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源,如:直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer  字段的,因为这是一个“凭空产生”的 HTTP  请求,并不是从一个地方链接过去的。服务器允许 Referer  为空,意味着服务器允许浏览器直接访问。

注:

  referer 的正确英语拼法是 referrer 。由于早期HTTP规范的拼写错误,为了保持向后兼容就将错就错了。其它网络技术的规范企图修正此问题,使用正确拼法,所以目前拼法不统一。还有它第一个字母是大写。

一、Referer

1.防盗链

Referer=https://www.sojson.com

注:设置 Referer 限制访问资源的域名,资源服务器每次取到 Referer 来判断一下是不限定的域名:https://www.sojson.com。如果是就继续访问,不是就拦截。

2.防止恶意请求。

比如SOJSON网站上,静态请求是*.html结尾的,动态请求是*.shtml,那么由此可以这么用,所有的*.shtml请求,必须 Referer  为限定网站。

Referer=https://www.sojson.com

3、Referer

服务器可以拒绝空referer的请求

4、页面添加Referer元素需要使用meta referrer标签

1、None:绝不允许referrer data通过
标签写法:<meta name="referrer" content="none">

2、None When Downgrade:发送referrer信息去安全的HTTPS站点,而非不稳定的HTTP站点。
标签写法:<meta name="referrer" content="none-when-downgrade">

3、Origin Only: 发送协议、主机和端口(即子域)没有一个完整的URL作为来源,
即https://moz.com/example.html只会发送https://moz.com
标签写法:<meta name="referrer" content="origin">

4、Origin When Cross-Origin: 当传origin-only来路信息发送给外部站点时,如果目标有相同的协议、主机和端口(即子域),无论它是HTTP或HTTPS,都将全部的URL作为Referrer发送出去。(注解:官方说明书上有一处排印错误,将来的版本应该是"origin-when-cross-origin")
标签写法:<meta name="referrer" content="origin-when-crossorigin">

5、Unsafe URL: 总是将URL字串作为一个referrer通过。
注意:如果你的URL中存在任何敏感信息,这不是最安全的选择。其中URL的片段、用户名、密码被自动剥去。
标签写法:<meta name="referrer" content="unsafe-url">
原文地址:https://www.cnblogs.com/yinminbo/p/12180272.html