如何查找並輕鬆修復 406 錯誤?

已發表: 2022-06-04

客戶端和服務器端可能會發生錯誤(例如 406 錯誤),這些通常稱為 HTTP 響應或狀態代碼。 此 HTTP 響應代碼稱為“406 錯誤”。

訪問網站時,您可能會遇到 406 錯誤。 如果你有一個網站,情況可能會更糟。 互聯網用戶可能會覺得這很煩人,但網站或應用程序所有者可能會覺得這絕對是可怕的。 任何 HTTP 響應代碼,包括 406 錯誤,都可能使原本專業的網站看起來不專業且令人困惑。

目錄

什麼是 406 錯誤?

“406 Not Acceptable” HTTP 錯誤消息不像“404 Not Found”錯誤(通常表明 URL 不存在)甚至 301 或 500 HTTP 問題那樣常見。 因此,你不應該期望看到很多這個。

狀態代碼 406 Not Acceptable 是 HTTP 響應代碼。 當用戶代理(Web 瀏覽器)向服務器請求信息時,它們會提供一個 Accept 標頭,通知服務器瀏覽器可以接受哪些數據類型。 如果服務器無法在 Accept 標頭中指定的任何編解碼器中傳輸數據,則會返回 406 Not Acceptable 錯誤。

儘管 406 錯誤並不常見,但它可能會導致您的網站出現問題。

消息通常是這樣的:

不能接受的

在此服務器上找不到所請求資源的適當表示。

最後提到了附加消息或服務器信息,它有時指示問題所在的“請求的資源”。

406 錯誤是服務器端錯誤還是客戶端錯誤?

客戶端錯誤是 406 Not Acceptable 狀態代碼。 它屬於 HTTP 響應狀態碼的 4xx( 4xx 狀態碼類是針對客戶端出現錯誤的情況)類別,即客戶端錯誤響應。

4xx 類別中的 HTTP 狀態代碼包括:

  • 400 錯誤請求
  • 401 未經授權的錯誤
  • 403 禁止
  • 404 未找到
  • 405 方法不允許
  • 410 走了
  • 429 請求過多
  • 415 不支持的媒體類型

4xx 錯誤意味著沒有找到預期的頁面並且請求不完整。 問題是在客戶端發生的事情。

它們不同於被視為服務器端故障的 5xx 類別的狀態代碼。 這些錯誤不是客戶端的錯,但它們確實表明服務器端有問題

有時可以將 406 Not Acceptable 錯誤追溯到服務器。 例如,如果配置錯誤並錯誤地處理請求,它可能會導致 406 代碼響應和其他嚴重的流量路由問題。

406錯誤的原因是什麼?

每當您打開網頁時,您的瀏覽器(例如​​ Safari、Firefox、Brave、Chrome 或 Internet Explorer)都會請求站點文件和內容。 通過與服務器通信,瀏覽器通知服務器用戶想看到什麼,並希望服務器回復正確的信息。

當瀏覽器發送它的第一個請求時,它會通知服務器它可以接受哪些文件類型。 從本質上講,它是一個 Accept-Header 請求,它告訴服務器以正確的格式交付文件,以便從標頭開始生成整個網站或 Web 應用程序。

當服務器的響應格式不正確時,它可能不遵守瀏覽器或客戶端的規則。 此錯誤表示服務器未交付所需的數據,如 406 錯誤所示。

在標頭請求中,可能存在一些“錯誤格式”和“違反規則”。 這裡有些例子:

  • 接受範圍:一些服務器使用安全措施或只允許響應中指定的文件大小限制。 如果答案嘗試發送超出允許範圍的太多字節,您將收到 406 錯誤。
  • Accept-encoding:頭部的這一部分用於壓縮文件,以便它們可以從服務器快速發送到瀏覽器。 當不接受某些編碼方法和格式時會生成 406 錯誤代碼。
  • Accept-language: Accept-language 是 Accept-charset 的暱稱,指的是它對全球語言的重視。
  • MIME 類型沖突:瀏覽器可能偶爾會向服務器詢問特定的 MIME 類型。 JPEG 照片、特定視頻格式和基本文本是 MIME 類型的示例。 如果服務器無法提供指定的 MIME 類型(例如 JPEG 圖像),您將收到 406 錯誤。
  • Accept-charset:這是一個字符集,描述站點文件表如何將代碼(例如 CSS 和 HTML)轉換為可讀字符。 很難涵蓋全球存在的所有字符、語言和符號。 ISO-8859 表是標準,但也有各種補充表。 為了跟上語言和字符的添加,新的字符表會定期發布。

“406 Not Acceptable”錯誤表明客戶端向 Web 服務器提供了合法請求,但該請求包含服務器必須遵守的特殊標準。 初始請求包括 HTTP Accept-header 形式的特殊需求。

這給我們留下了一些可能性或原因:

  • 服務器未提供所需的 MIME 類型或合適的格式,例如 JPEG 或 mp4 視頻。
  • 服務器沒有提供合適的語言(Accept-language)。
  • 根據接受編碼請求,服務器使用了不正確的壓縮方法或格式。
  • 服務器返回的字節數過多,與 Accept-ranges 請求不匹配。
  • 服務器未能提供可理解的字符,導致瀏覽器的 Accept-charset 請求出現問題。

406 錯誤可能是由其他原因引起的,但並不常見。 前兩個比其他兩個更普遍,因此您可能應該從調查 MIME 類型違規或接受語言問題的可能性開始。

了解網站文件中的某些內容如何導致問題是網站所有者關於這些格式問題和違規的關鍵信息。 人為錯誤,例如輸入錯誤代碼、刪除重要代碼或錯誤配置服務器,經常會導致此類情況。 當特定的安全設置或法規阻止從服務器傳送內容時,就會出現 406 錯誤。

406錯誤有哪些預防措施?

406 錯誤的問題在於它可能出現在各種情況下。

這並不理想,但沒有什麼是一點故障排除無法解決的。 當您的網站或應用程序上發生 406 錯誤時,問題就會大得多。

如果它是您的網站,您需要確保它不會再次發生。 插件、主題和人為錯誤都可能起作用,所以這裡有一些額外的建議。

  • 將插件、主題和擴展保持在最低限度。 僅安裝必要且信譽良好的元素。
  • 除非您知道自己在做什麼並且絕對必須這樣做,否則您永遠不應該編輯 WordPress 的核心文件。
  • 建議定期執行數據庫清理程序和站點優化程序。 我們建議每個月完成此過程,並使用將在後台自動運行的更清潔插件。
  • 調試服務器和 Web 應用程序應該成為一種習慣。
  • 定期備份您的網站或應用程序。 這將防止代碼衝突或錯誤引起過多的焦慮,因為您可以輕鬆地恢復網站的先前版本。
  • 即使您已經運行了自動備份,在更新 WordPress 和任何插件之前運行您的站點的手動備份。 在編輯任何文件或向您的站點添加新代碼之前進行備份也是一個好主意。

如何修復 406 錯誤?

進入您的 WordPress 網站的文件管理器。 輸入publi_html並右鍵單擊.htaccess進行編輯

406 錯誤

在文件末尾輸入以下代碼,然後單擊保存。 這將解決 406 錯誤,請注意,要使以下解決方案正常工作,您需要在 LiteSpeed Enterprise 或 Apache 上擁有您的站點,即使在 NGINX 上,以下解決方案也不起作用。

 <IfModule mod_security.c> SecFilterEngineOff SecFilterScanPOSTOff </IfModule>

結論

瀏覽網站時,您可能會看到 406 錯誤。 或者,在最壞的情況下,在您的網站上。 雖然它可能會惹惱典型的互聯網用戶,但對於網站或服務的所有者來說可能是徹頭徹尾的恐懼。 任何 HTTP 響應代碼,即使是 406 錯誤,除了看起來不專業和不清楚之外,都可能會失去銷售和用戶。

有多種方法可以解決 406 錯誤。 只要您知道所看到的內容以及在哪裡尋求解決方案,您就應該能夠清除錯誤。

雖然這不是最常見的 WordPress 問題之一,但如果您的配置不正確,您可能會遇到這種問題。