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檔案中的重定向訊息