Google 如何在搜索结果点击后设置 HTTP Referrer

How does Google sets HTTP Referrer after a search result click

例如,this page 上的第一个搜索结果导致较旧的 SO 问题,具有以下 HTTP 请求:

GET /questions/4402502/how-does-google-set-the-http-referrer-when-someone-clicks-on-a-search-result-lin HTTP/1.1
Host    whosebug.com
Referer https://www.google.ru

请注意:

  1. Referer 中只包含域 header,没有查询字符串。
  2. Google 通过 HTTPS 打开,而 SO 通过普通 HTTP 打开 - 然而,Referer header 是由浏览器发送的。
  3. 不涉及 server-side 重定向,点击后打开的第一个 HTTP 查询是到目标站点。

问题是,他们是如何做到这一点的?

Google 利用了 Referrer Policy。 它们在页面中包含元标记:

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

这告诉浏览器使用 "Origin Only" 策略,即在任何后续请求中仅在 Referrer header 中发送域信息。