Http Refer

Refer

Http请求头中的常见字段,其含义为来源网站的信息,主要发生在点击连接发送表单加载静态信息的时候,告诉服务器用户访问该资源之前的位置。可以做用户追踪。
一般用做图片外链爬虫检测资源外链分析用户行为等场景中。

如果不想添加默认的Ref属性,则可以通过rel="noreferrer",来禁止浏览器发送。也可以通过跳转到后台在重定向实现。

在爬虫的使用过程中,有时候也是需要注意该字段的信息,因为有的网站的详情页是必须通过列表页才能跳转过去的,上一个列表页只有通过其他的列表页才能跳转过去,所以此时爬虫的请求头中需要模拟出该信息。

设置Referrer Policy

摘自HTTP Referer 教程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(1)no-referrer

不发送Referer字段。

(2)no-referrer-when-downgrade

如果从 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,其他情况发送(包括 HTTP 网址链接到 HTTP 网址)。这是浏览器的默认行为。

(3)same-origin

链接到同源网址(协议+域名+端口 都相同)时发送,否则不发送。注意,https://foo.com链接到http://foo.com也属于跨域。

(4)origin

Referer字段一律只发送源信息(协议+域名+端口),不管是否跨域。

(5)strict-origin

如果从 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,其他情况只发送源信息。

(6)origin-when-cross-origin

同源时,发送完整的Referer字段,跨域时发送源信息。

(7)strict-origin-when-cross-origin

同源时,发送完整的Referer字段;跨域时,如果 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,否则发送源信息。

(8)unsafe-url

Referer字段包含源信息、路径和查询字符串,不包含锚点、用户名和密码。

使用方法

(1)HTTP 头信息

服务器发送网页的时候,通过 HTTP 头信息的Referrer-Policy告诉浏览器。

1
Referrer-Policy: origin

(2)<meta>标签

也可以使用<meta>标签,在网页头部设置。

1
<meta name="referrer" content="origin">

(3)referrerpolicy属性

<a><area><img><iframe><link>标签,可以设置referrerpolicy 属性。

1
<a href="..." referrerpolicy="origin" target="_blank">xxx</a>