304 Not Modified:如何修复此 HTTP 状态代码?

已发表: 2024-02-02

目录
什么是 304 错误?
如何修复 304 错误代码?
304错误有什么意义?
HTTP 304错误的工作机制
304错误的原因是什么?
概括
经常问的问题

什么是 304 错误?

HTTP错误304的含义是,所请求的资源自上次访问以来尚未被修改或更改; 因此不需要再次传输数据,浏览器将从浏览器存储在本地存储中的缓存中获取数据。

这意味着浏览器不需要一次又一次地从网站服务器下载或获取数据。

但是,它也会向抓取工具或 Googlebot 发出信号,表明无需再次抓取该网页,因为该网页上没有任何新内容。

此 304 HTTP 错误属于3xx 组HTTP 状态代码,通常称为重定向代码。 (您一定熟悉这两个广泛使用且流行的重定向HTTP错误代码301和302)


阅读: WordPress 重定向 URL 是如何工作的? 5 种最佳方法


现在,事不宜迟,让我们看看如何解决这个问题。


如何修复 304 错误代码?

现在您知道 304 错误意味着什么,但是,您无法解决尝试访问您网站的客户端的问题,但您至少可以建议或指导他们解决问题。

让我们看看这些简单的故障排除方法,它们将帮助您修复 304 错误。

  • 清除浏览器缓存和数据
  • 禁用浏览器扩展
  • 运行防病毒/反恶意软件程序
  • 清理 DNS 并重置 TCP/IP
  • 尝试 Google DNS 服务器
  • 检查 .htaccess 文件中的重定向信息

1.清除浏览器缓存和数据

适用于大多数 HTTP 错误代码的最基本的故障排除方法之一是完全清除浏览器缓存或数据。

此方法将删除或删除存储在计算机本地存储中的所有浏览器缓存,并节省大量磁盘空间。 此外,它还提升了浏览器体验。

另一方面,如果您的缓存中存储了任何过时或损坏的网站数据,它也将被删除,浏览器将被迫从网站服务器获取更新的内容。

以下是您需要遵循的简单步骤:

2.禁用浏览器扩展

您的浏览器扩展也可能出现问题。 有时,浏览器扩展程序编码不良、受到损害或损坏,从而与网站发生冲突并触发此类错误。

要确定这是否导致问题,您可以做的最好的事情是禁用所有浏览器扩展,然后尝试再次访问该网站。

如果错误消失,则表示问题是由错误的插件引起的。 要确定这一点,请一次启用一个扩展程序并同时访问该网站。 每当错误再次出现时,您就已经确定了罪魁祸首插件。

对于 Chrome 用户,请执行以下简单步骤:

要查看所有已安装的 Chrome 扩展程序,请在 URL 栏中输入“ chrome://extensions/ ”。

Disable Chrome Extensions
禁用 Chrome 扩展程序

之后,禁用所有活动的 Chrome 扩展并检查错误是否已解决。 如果已解决,则意味着已安装的扩展导致了错误,请立即删除它们,然后就完成了。

但是,如果此方法不起作用,请继续使用下面的方法。

3. 运行防病毒/反恶意软件程序

您的浏览器也可能已被恶意软件或病毒感染或损坏。 要检查这是否导致问题,请立即运行受信任且知名的防病毒/反恶意软件程序来清理您的计算机。

提示:始终保持浏览器和系统软件更新,以消除任何潜在的威胁和风险。

4. 清理 DNS 并重置 TCP/IP

就像网络浏览器一样,您的操作系统也被设计为存储缓存文件,但在本例中是在域名服务器缓存中。 它主要包含您的所有浏览数据,包括 IP 地址、主机名和资源记录。

这有助于改善您的网页浏览体验,减少 DNS 查找,减轻 DNS 服务器的负担,还可以减少网页加载时间。

但就像 Web 浏览器的缓存文件一样,这些 DNS 缓存也会随着时间的推移而过时或损坏,并导致错误。

因此,定期刷新或删除这些缓存文件有助于增强网站安全性,并降低 DNS 欺骗(即中毒)的风险。 除此之外,它还可以帮助修复 304 错误等技术问题。

在 Chrome 浏览器中,您只需输入地址“chrome://net-internals/#dns”并按照此专门博客“chrome://net-internals/#dns – 如何操作”中给出的步骤即可轻松刷新 DNS清除 Chrome 的 DNS 缓存“。

此外,您还可以刷新或删除操作系统上的 DNS 缓存。 如果您需要完整的分步过程,可以参阅我们的指南“Flush DNS:它是什么以及如何做(Windows、Mac、Linux)?”

要重置 TCP/IP,只需按照下面给出的简单步骤操作即可。

在 Windows 10 或 7 操作系统中重置 TCP/IP 设置:

步骤 1:从系统中释放 IP 地址后,请按照下一步释放 DNS 缓存。 因此,输入ipconfig/flushdns来释放 DNS 缓存。

步骤 2:在下一步中,输入ipconfig /renew ,这将为系统更新新的 IP 地址。

ipconfig/renew
使用 ipconfig/更新

步骤 3:输入netsh int ip set dns并单击 Enter。 这将重置先前存储的 IP 的整个 IP 设置。

步骤 4:键入netsh winsock reset命令。 它将恢复 Winsock 目录。

netsh winsock reset
netsh winsock重置

步骤5:最后,该过程完成后,重新启动电脑将确保问题得到解决。

对于 MAC 用户:

步骤1 :如前所述,使用防毒面具是搜索所有系统相关作品的简单方法。 对于普通用户来说,第一步是在主窗口中打开系统首选项。

步骤 2 :接下来,在以太网选项卡下,单击高级选项。

步骤 3 :对于初学者,使用命令时,需要单击 TCP/IP 选项卡,其中可以选择释放 DHCP 选项。 因此,该过程允许 MAC 用户清除本地 DNS。

renew DHCP lease mac
续订 DHCP 租约

步骤4 :MAC用户还可以清除本地DNS缓存。 这涉及访问“实用程序”>“终端”页面,要求他们在其中显示命令。

步骤 5 :刷新相同的命令是dscacheutil -flushcache

5.尝试谷歌DNS服务器

也有可能是您的 DNS 地址有问题。 要检查这一点,请尝试将您的 DNS 服务器更改为 Google 的,并检查这是否有助于解决问题。

对于 Windows

通过在运行命令框中键入相同的内容来打开控制面板

单击网络和 Internet 选项将打开许多其他选项。

Change Adapter Settings in Windows
在 Windows 中更改适配器设置

接下来,单击“更改适配器设置”选项,这将显示当前的网络连接。

按照此过程,单击“本地连接”选项下的“属性”选项,该选项适用于有线连接。 对于无线连接,请单击“无线网络连接”选项。

下一个选项涉及显示 IP 版本框。 单击相同按钮后,将打开一个框以更改首选 DNS 服务器和备用 DNS 服务器。 对于使用 IPv4 的用户,Google DNS 分别为8.8.8.88.8.4.4

DNS server address
DNS服务器地址

最后,重新启动浏览器即可看到变化。

对于 MAC 用户

第 1 步:打开位于屏幕左上方的系统偏好设置栏。

System preferences in Mac
Mac 中的系统偏好设置

步骤2 :在接下来的步骤中,点击高级选项,打开包含DNS服务器地址的页面

DNS servers on Mac
Mac 上的 DNS 服务器

步骤 3 :在最后一步中,添加来自 Cloudflare 的 IPv4 DNS 地址、 1.1.1.11.0.0.1将完成设置。

6.检查.htaccess文件中的重定向信息

如果上述方法都无法修复 304 错误,那么您最后能做的就是检查服务器配置文件。

要检查您的服务器配置文件,您首先需要知道您的 Web 服务器是 Apache 还是 NGINX。

如果是 Apache ,您的服务器配置文件将称为 .htaccess 文件,其中包含与请求和重定向相关的所有信息。 要了解更多信息,您可以参阅我们的指南“WordPress .htaccess 文件:如何创建和编辑它?”

当您找到.htaccess 文件时,接下来需要做的就是禁用它。 为此,只需将其名称更改为.htaccess_disable之类的名称即可。 确保您的网站处于工作状态,并查看 304 未修改错误是否仍然出现。

如果没有出现并且错误消失,您需要与开发人员一起检查 .htaccess 中的代码或说明。 另外,检查是否有任何错误的重定向设置。

但是,对于NGINX Web 服务器,您无权访问 .hatccess 文件。 但您需要检查错误日志,其中将提供有关错误的所有详细信息,您可以相应地进一步进行操作。


304错误有什么意义?

304错误有其重要性,特别是对于页面和内容较多的网站。 这有助于通过向 Google 抓取工具发出页面未更新或更改而不是抓取新页面和更新页面的信号来节省抓取预算。


HTTP 304错误的工作机制

用简单的话来说,它是这样工作的:

  • 初始请求:
    • 客户端第一次向Web服务器请求资源。
    • 服务器使用请求的资源进行响应,并为其分配一个哈希代码 (ETag),表示成功(200 OK HTTP 代码)。
    • 客户端记录请求的时间。
  • 后续请求:
    • 客户端再次请求资源。
    • 服务器检查来自客户端的 If-None-Match 和/或 If-Modified-Since 请求标头,使其成为条件 HTTP 请求。
  • 如果无匹配 (ETag):
    • 如果If-None-Match中的ETag(内容哈希码)与服务器的值匹配,则意味着内容没有改变。
    • 如果哈希码匹配,则无需重新加载内容。
  • 如果-修改-自:
    • If-Modified-Since 包含客户端上次请求的日期和时间。
    • 如果服务器自该日期以来未发现任何更改,则会跳过再次发送资源。
  • 服务器响应:
    • 如果满足任一条件(If-None-Match 或 If-Modified-Since),服务器将使用 304 HTTP 代码(未修改)进行响应。
  • 优先级:
    • 当同时使用时,If-None-Match 优先于 If-Modified-Since。
  • 浏览器处理(304未修改):
    • 当浏览器收到 304 Not Modified 代码时,它会使用缓存版本而不是重新加载资源。
    • 304 被认为是客户端重定向代码之一,可以有效地利用资源。

304错误的原因是什么?

您可能想知道为什么会触发 304 错误。 好吧,答案可能会让你们中的许多人感到非常惊讶,甚至它也不在我们的控制范围内。

此特定错误可能从两端发生,即客户端或服务器端。 如果用户在您的网站上看到 304 未修改消息,您对此无法控制。 这是因为问题很可能在他们这边,而不是在你这边。

下面给出了导致 304 错误的一些可能原因。

  • 病毒或恶意软件攻击:如果您的电脑受到病毒攻击或恶意软件感染,您的浏览器也可能受到感染和损坏。 导致与 Web 服务器的通信中断。
  • 最近安装了损坏的软件:如果您最近安装了新软件,则它的注册表可能会损坏,这也会影响您的浏览器与 Web 服务器和缓存的通信。
  • 应用程序损坏: 304 错误的另一个潜在原因可能是与浏览器或浏览器本身相关的应用程序。 损坏的浏览器工具或扩展程序还会中断浏览器和 Web 服务器之间的通信,并影响 Web 浏览器保存网页或更新信息的能力。

概括

从上面的帖子中,您了解到错误 304 只是表明所请求的资源自上次访问以来尚未更新/修改或更改。 因此,浏览器会从缓存中获取数据,而不是再次从 Web 服务器下载数据。

此错误属于 HTTP 状态代码的 3XX 范围,通常称为预测代码。 这些代码是有意用于改善网站页面和体验的。 但由于上述原因,两者(即浏览器和 Web 服务器)之间的通信可能会中断并触发 HTTP 304 未修改状态代码。

但您只需按照以下 6 种故障排除方法即可轻松解决此问题:

1.清除浏览器缓存和数据

2.禁用浏览器扩展

3. 运行防病毒/反恶意软件程序

4. 清理 DNS 并重置 TCP/IP

5.尝试谷歌DNS服务器

6.检查.htaccess文件中的重定向信息

执行每种方法后,请通过重新启动浏览器确保一切正常,同时请记住,您无法修复访问者端的 304 错误,但您可以向他们提供资源。


经常问的问题

304服务器未找到错误是什么?

HTTP错误304的含义是,所请求的资源自上次访问以来尚未被修改或更改; 因此不需要再次传输数据,浏览器将从浏览器存储在本地存储中的缓存中获取数据。

304错误是坏事吗?

不,304 错误并不完全是坏事,但也不好。 好的方面是,它有助于节省网站的抓取预算、Cachign 优化、减少服务器负载等。坏的部分可能是潜在的陈旧缓存、网站所有者的有限控制以及浏览器缓存依赖性。

如何修复 304 错误?

只需按照以下 6 种方法即可轻松修复 304 错误:
1.清除浏览器缓存和数据
2.禁用浏览器扩展
3. 运行防病毒/反恶意软件程序
4. 清理 DNS 并重置 TCP/IP
5.尝试谷歌DNS服务器
6.检查.htaccess文件中的重定向信息