HTTP 标头用于检测 Google Chrome 的预加载请求

问题描述 投票:0回答:3

Google Chrome 17 引入了一项新的功能,它会预加载网页,以提高实际发出请求时的渲染速度(在多功能栏中按 Enter 键)。

两个问题: 是否有 HTTP 标头来检测服务器端的此类请求,如果确实存在,为了防止此类预加载(以防止可能产生不良影响的意外请求),正确的响应是什么?

Google Chrome 在发出预加载请求之前是否会检查 robots.txt? 是否有 robots.txt 设置仅针对此特定行为? (我想/希望禁止已经有效)。

是否有一个元标记可以通知 Google Chrome 不再在当前域上预加载?

google-chrome http-headers meta-tags robots.txt
3个回答
15
投票

当 Firefox 预取内容时(根据引用页面的要求) 标记),它会随请求发送以下标头:X-moz: 预取

Safari 也有类似的做法,使用:X-Purpose:预览。根据这个 票证,Chrome 也有。

对于预渲染,Chrome 不会向 客户。相反,必须使用 JS 中的页面可见性 API

来源补充阅读


12
投票

Chrome 在 2011 年停止发送 X-Purpose 标头,他们表示不会在那里修复它:https://code.google.com/p/chromium/issues/detail?id=86175.

他们在 2018 年重新引入了发送 Purpose:prefetch 标头以及所有 nostate-prefetch 请求,正如对此问题的最后评论所述。 https://bugs.chromium.org/p/chromium/issues/detail?id=86175#c65


0
投票

Chrome 目前正在使用 Sec-Purpose 标头,其值为:prefetch;prerender,这使我们能够检测此类请求。

我们案例中的问题是,当用户未登录时预取请求启动了 SSO 进程,该进程无法完成预取。因此,在这种情况下,我们返回 401 并等待“真实”请求。

© www.soinside.com 2019 - 2024. All rights reserved.