浏览器301缓存

作者: dreamfly 分类: 服务器 发布时间: 2023-02-09 12:30

我认为许多 Web 开发人员和服务器管理员都面临着 301 重定向缓存。我经常面对它,直到我吸取教训......
我希望它能帮助你,你从我身上学到一些东西,而不是从你的错误💥中学习

👉 例如,当您配置 SSL 证书并进行从 HTTP 到 HTTPS 的 301 重定向时,出现问题,您无法再次输入 HTTP 版本。浏览器缓存 301 重定向并将您重定向到 HTTPS。

👉 第二个示例是更改网站域时。如果您使用 301 重定向从旧域重定向到新域,浏览器也会缓存它,并阻止您进入旧域。

👌 如何避免这种情况?只要一切正常,就使用 302 重定向。然后,也只有这样,更改 302 重定向 301。为什么?❓

📚 301 和 302 重定向的定义:

301 - 表示资源(页面)永久移动到新位置。客户端/浏览器不应尝试请求原始位置,而应从现在开始使用新位置。

302 - 表示资源暂时位于其他位置,客户端/浏览器应继续请求原始 URL。

301 是永久重定向。即使您从服务器中删除重定向,由于硬缓存,您的浏览器也会不断将资源重定向到新域或 HTTPS。

因此,浏览器不会硬缓存302,如果您从服务器(网站)中删除重定向,则可以访问旧版本。

💀 301 在生产中有多危险?这很简单。如果出现问题并且您将 301 重定向发布到生产环境,则客户端的浏览器将永久缓存此重定向,并且您必须告诉所有客户端清除浏览器缓存。这是一个 💩

🤔 好的,如果我的浏览器缓存 301 重定向,我该怎么办?每个网站开发人员都知道Chrome开发人员工具(F12)和右键单击“刷新”按钮

但我可以告诉你,这还不够。假设您使用 301 重定向将旧域严重重定向到新域,并且想要清除域缓存。您必须在旧域上执行此操作,因为旧域正在重定向。但是您无法访问它...唯一要做的就是清除整个浏览器缓存甚至cookie,但没有人愿意这样做。

😎 有一个关于如何访问旧域(或任何重定向 URL)的技巧。

  1. 在访问网站之前,请打开Chrome开发人员工具(F12)。
  2. 转到“网络”选项卡
  3. 选中保留日志复选框
  4. 清除日志

“Chrome 网络”标签页

现在输入您的旧域 URL 并导航到它。当然,它将被重定向到新域。但是在您的网络日志中,您将拥有旧的域重定向请求,并且您可以通过右键单击请求并选择清除浏览器缓存来清除域缓存。之后,您的 301 重定向将被删除。但请记住,您必须在之前从服务器中删除重定向。

Clear the request cache

总之,如果你在开发过程中,强烈建议你禁用浏览器缓存,就是在network标签栏中,选中禁用缓存复选框。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!