Vary HTTP 标头可能造成哪些危害

AEO Service Forum Drives Future of Data Innovation
Post Reply
shuklarani621
Posts: 782
Joined: Tue Dec 03, 2024 4:12 am

Vary HTTP 标头可能造成哪些危害

Post by shuklarani621 »

目录

Vary 标头如何工作?
变化:用户代理
坏机器人
如何查看响应标头
如何配置 Vary 标头
Vary 是一个强大的 HTTP 标头,在网站缓存的工作方式中起着重要作用。如果正确设置此标头,它可以确保您的网站访问者看到正确的内容,无论应用了什么缓存。但是,如果此标头设置不正确,它可能会完全推翻最好的缓存系统的优势并导致资源过度使用。在这篇博文中,我想阐明 Vary 标头如何影响您的 SiteGround 托管网站,特别是我们的缓存系统,并向您展示 Vary 标头对您的网站的推荐用法。


Vary 标头如何工作?
Vary 标头的作用是指示在哪些情况下应提供您网站的不同版本。如果您的 Vary 标头具有以下值之一:User-Agent、Cookie、Referrer甚至 *(通配符),则可能会显著降低我们的缓存系统的效果。发生这种情况的原因是,这些值表示应根据使用的浏览器类型(用户代理)、唯一 cookie 或引 巴林 whatsapp 数据 荐 URL 的存在提供您页面的不同版本,或者在更糟糕的情况下使用 *,这意味着每次访问都会提供新内容,这将完全禁用我们的缓存。

变化:用户代理
让我们来看看最常用的值 User-Agent 是如何工作的。它告诉我们的动态缓存:“嘿,你应该为不同的操作系统和浏览器存储不同的缓存”。这样做是为了避免向移动访问者提供缓存的桌面版本。但请注意,如今大多数网站实际上并没有为其移动版本提供不同的 HTML。响应式 CSS 会完成所有繁重的工作,并在移动设备和桌面上以不同的方式显示您的网站。因此,除非您使用像 WP Touch 这样的插件,或者您确定您的网站的 HTML 输出会根据访问者的浏览器而有所不同,否则您的网站不应发送 Vary: User-Agent 标头。

如果没有设置 Vary: User-Agent,我们的缓存系统将在第一次加载时缓存您的网站,然后将缓存的版本提供给后续请求,除非您更新内容或手动清除缓存。启用 User-Agent 后,系统将为访问您网站的每个操作系统和浏览器版本组合保留不同的副本。这意味着您将对第一个在桌面 Safari 上加载您网站的人发出一个动态请求,对第一个在移动 Chrome、桌面 Chrome 等上加载您网站的人发出一个动态请求。

假设您大约每 100 次点击清除一次缓存。如果您的网站没有发送 Vary: User-Agent,您的网站每 100 次访问将只有 1 个动态请求。另一方面,如果启用标头,则根据访问者的个人资料,对于相同的 100 次访问,您将有 5-30 个动态请求。因此,同一个网站将使用未设置标头时所需资源的 5-30 倍。

坏机器人
我们讨厌恶意软件流量和恶意机器人。我们一直在努力用尽一切可能与它们作斗争。我在这里提到机器人,是因为如果您被它们发送垃圾邮件,Vary: User-Agent 标头可能会决定它们的攻击有多成功,以及被机器人抓取会如何影响您的网站性能。

您可以将机器人视为在您的网站上执行自动操作的浏览器。它可能会收集数据以供自己的索引使用、搜索漏洞、尝试提交表单等。机器人的用户代理只是其创建者添加的一段文本。像 Google 机器人这样的知名爬虫会正确设置其用户代理,而其他爬虫可能会尝试模仿 Bing 机器人或 Google 机器人,甚至随机生成用户代理。

如果此类机器人开始抓取您的网站,并且您有 Vary: User-Agent 标头,则它对您网站的每个请求都将是动态请求,并将消耗您的资源。另一方面,如果不使用该标头,您将直接从我们的动态缓存中向机器人提供缓存请求。
Post Reply