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
请注意:
- Referer 中只包含域 header,没有查询字符串。
- Google 通过 HTTPS 打开,而 SO 通过普通 HTTP 打开 - 然而,Referer header 是由浏览器发送的。
- 不涉及 server-side 重定向,点击后打开的第一个 HTTP 查询是到目标站点。
问题是,他们是如何做到这一点的?
Google 利用了 Referrer Policy。
它们在页面中包含元标记:
<meta name="referrer" content="origin">
这告诉浏览器使用 "Origin Only" 策略,即在任何后续请求中仅在 Referrer header 中发送域信息。
例如,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
请注意:
- Referer 中只包含域 header,没有查询字符串。
- Google 通过 HTTPS 打开,而 SO 通过普通 HTTP 打开 - 然而,Referer header 是由浏览器发送的。
- 不涉及 server-side 重定向,点击后打开的第一个 HTTP 查询是到目标站点。
问题是,他们是如何做到这一点的?
Google 利用了 Referrer Policy。 它们在页面中包含元标记:
<meta name="referrer" content="origin">
这告诉浏览器使用 "Origin Only" 策略,即在任何后续请求中仅在 Referrer header 中发送域信息。