掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

服務(wù)器和客戶端錯(cuò)誤偶爾會(huì)發(fā)生,我們通常將它們稱為http響應(yīng)或狀態(tài)代碼。 “406 error”或“406 Not Acceptable”錯(cuò)誤就是這樣一種HTTP響應(yīng)。
您可能會(huì)在訪問網(wǎng)站時(shí)看到406 error?;蛘吒愕氖?,在您的網(wǎng)站上。雖然它可能會(huì)激怒普通互聯(lián)網(wǎng)用戶,但對(duì)于網(wǎng)站或應(yīng)用程序所有者來(lái)說,它可能是可怕的。除了看起來(lái)有些不專業(yè)和令人困惑之外,任何HTTP響應(yīng)代碼,包括406 error,都可能失去銷售和用戶。
本文將解釋“406 Not Acceptable”錯(cuò)誤的基礎(chǔ)知識(shí)、原因、修復(fù)方法以及將來(lái)避免它的步驟。
好消息是HTTP錯(cuò)誤“406 Not Acceptable”消息并不像404服務(wù)器錯(cuò)誤(通常表示網(wǎng)頁(yè)不存在)甚至301或500 HTTP錯(cuò)誤那么常見。因此,你絕對(duì)不應(yīng)該看到這個(gè)。
盡管這種情況很少見,但406錯(cuò)誤仍有可能成為您網(wǎng)站的問題。它通??雌饋?lái)像這樣:
“406 Not Acceptable”消息的一個(gè)示例。
該消息通常為:
Not Acceptable
An appropriate representation of the requested resource could not be found on this server.
然后它有時(shí)會(huì)識(shí)別問題所在的“請(qǐng)求的資源”,并在末尾提到其他消息或服務(wù)器信息:
一些406錯(cuò)誤顯示被拒絕的資源
406錯(cuò)誤消息中的外觀和文本取決于用于訪問該網(wǎng)站的網(wǎng)站、主機(jī)和瀏覽器。 406錯(cuò)誤可能會(huì)揭示錯(cuò)誤的來(lái)源。其他時(shí)候,您可能會(huì)發(fā)現(xiàn)這是一個(gè)簡(jiǎn)單的“406 Not Acceptable”錯(cuò)誤,沒有任何信息可以幫助您解決問題。
現(xiàn)在,讓我們假設(shè)瀏覽器說的是簡(jiǎn)單的英語(yǔ)而不是這些神秘的信息。
在這種情況下,瀏覽器會(huì)說這樣的話:你好,我是瀏覽器。我試圖顯示此網(wǎng)頁(yè),但發(fā)生了兩個(gè)問題之一:
因此,請(qǐng)解決違規(guī)問題或讓服務(wù)器使用我接受的文件格式之一。如果您想知道,這里是我知道如何閱讀的文件格式。
要是瀏覽器這么友好就好了!
本質(zhì)上,服務(wù)器與用于呈現(xiàn) Web 應(yīng)用程序的瀏覽器或機(jī)器之間存在錯(cuò)誤通信。瀏覽器要么無(wú)法讀取傳入的內(nèi)容,要么無(wú)法驗(yàn)證數(shù)據(jù),因?yàn)樗环夏承┮蟆,F(xiàn)在我們必須回答一些問題來(lái)找出造成這種誤解的原因。
每次打開網(wǎng)頁(yè)時(shí),您的瀏覽器(如 Safari、Firefox、Brave、Chrome 或 Internet Explorer)都會(huì)向頁(yè)面服務(wù)器發(fā)送請(qǐng)求以獲取站點(diǎn)內(nèi)容和數(shù)據(jù)庫(kù)文件。瀏覽器充當(dāng)您和服務(wù)器之間的信使——它告訴服務(wù)器用戶想看到什么,并希望返回正確的信息。
在第一個(gè)請(qǐng)求期間,瀏覽器會(huì)告訴服務(wù)器它可以接受的所有文件格式。它被稱為Accept-標(biāo)頭請(qǐng)求,它提示服務(wù)器以正確的格式傳送文件以生成整個(gè)網(wǎng)站或Web應(yīng)用程序,從頭開始。
有時(shí),服務(wù)器會(huì)發(fā)送格式不合適或違反瀏覽器或客戶端計(jì)算機(jī)規(guī)定的規(guī)則的回復(fù)。在這種情況下,瀏覽器窗口中會(huì)出現(xiàn)406錯(cuò)誤,表明服務(wù)器沒有提供適當(dāng)?shù)臄?shù)據(jù)。
以下是標(biāo)頭請(qǐng)求中可能出現(xiàn)的“錯(cuò)誤格式”和“違反規(guī)則”的一些示例:
解決和修復(fù)406錯(cuò)誤的主要方法是檢查Accept-、Request-和Response-標(biāo)頭中的問題的源代碼。
查看Accept-和Response-標(biāo)頭的最簡(jiǎn)單方法是在瀏覽器中打開一個(gè)網(wǎng)頁(yè),右鍵單擊并選擇Inspect 。
轉(zhuǎn)到Network > Headers以顯示來(lái)自此網(wǎng)頁(yè)的所有請(qǐng)求。
右鍵單擊并在瀏覽器中選擇“Inspect”,然后轉(zhuǎn)到“Network”和“Headers”選項(xiàng)卡。
您通??梢詮拈L(zhǎng)列表中選擇任何請(qǐng)求以查看該特定請(qǐng)求的 Request-和Response-標(biāo)頭。
單擊列表中的任何請(qǐng)求以查看諸如Response- 和 Request-標(biāo)頭之類的內(nèi)容
或者,您可以聯(lián)系您的Web開發(fā)人員以查看源代碼。但是,當(dāng)您擁有用于調(diào)試和清理數(shù)據(jù)庫(kù)的工具時(shí),檢查源代碼會(huì)容易得多,我們將在本文后面討論。如前所述,“406 Not Acceptable”錯(cuò)誤告訴我們客戶端已向服務(wù)器發(fā)送了有效請(qǐng)求,但該請(qǐng)求包含服務(wù)器必須遵循的唯一要求。初始請(qǐng)求中的特殊要求采用HTTP Accept-標(biāo)頭的形式。這給我們留下了一些潛在的原因:
您可能會(huì)看到406錯(cuò)誤還有其他原因,但它們并不常見。上面的列表是從最常見到最不常見的原因。前兩個(gè)比其他更頻繁地發(fā)揮作用,因此您很有可能通常應(yīng)該專注于排除 MIME 類型違規(guī)或Accept-language問題的可能性。
總體而言,網(wǎng)站所有者應(yīng)該了解這些格式問題和違規(guī)行為,了解您網(wǎng)站文件中的某些內(nèi)容可能會(huì)導(dǎo)致問題。此類情況經(jīng)常因人為錯(cuò)誤而發(fā)生,例如意外輸入錯(cuò)誤代碼、刪除必要代碼或錯(cuò)誤配置服務(wù)器。當(dāng)特定的安全設(shè)置或規(guī)則阻止來(lái)自服務(wù)器的內(nèi)容傳輸時(shí),也會(huì)出現(xiàn)406錯(cuò)誤。
在完成解決406錯(cuò)誤的任何步驟之前運(yùn)行網(wǎng)站或應(yīng)用程序備份是明智的。訪問站點(diǎn)的源代碼總是有可能導(dǎo)致進(jìn)一步的問題,因此如果需要,您需要有一個(gè)數(shù)據(jù)庫(kù)和站點(diǎn)文件備份來(lái)恢復(fù)。
確保您完成了從數(shù)據(jù)庫(kù)到應(yīng)用程序以及媒體元素到站點(diǎn)文件的所有內(nèi)容的完整備份。
現(xiàn)在我們對(duì)406錯(cuò)誤發(fā)生的原因有了更深入的了解,是時(shí)候討論解決錯(cuò)誤并防止它再次發(fā)生的最佳方法了。這些策略包括客戶端原因(用戶出錯(cuò)或機(jī)器工作不正常)、服務(wù)器端原因和基于平臺(tái)的原因,如插件錯(cuò)誤。
我們的第一條建議聽起來(lái)可能很簡(jiǎn)單,但它是最快的故障排除選項(xiàng),并且將重點(diǎn)放在客戶端(即您的計(jì)算機(jī))的問題上。
在這種情況下,404錯(cuò)誤比406錯(cuò)誤更有可能發(fā)生,但如果網(wǎng)站URL有效,您最終可能會(huì)看到“406 Not Acceptable”錯(cuò)誤。然而,瀏覽器轉(zhuǎn)換請(qǐng)求的方式有些奇怪。例如,在URL末尾添加“JSON”或“PHP”可能會(huì)被誤解為對(duì)這些特定格式的請(qǐng)求,即使客戶端不需要它們。
要解決此問題,請(qǐng)仔細(xì)檢查之前使用的導(dǎo)致錯(cuò)誤的URL。嘗試再次輸入它或在網(wǎng)站上選擇不同的子域,看看它是否只有一個(gè)頁(yè)面沒有呈現(xiàn)。
406消息在技術(shù)上被認(rèn)為是客戶端錯(cuò)誤代碼(即使它通常是平臺(tái)或服務(wù)器問題),因此這是確定客戶端是否有問題的第一個(gè)操作過程。
另一個(gè)客戶端問題偶爾涉及從用戶計(jì)算機(jī)發(fā)送到無(wú)法滿足請(qǐng)求的平臺(tái)的相同Accept-標(biāo)頭。其中許多平臺(tái)包括Hulu等面向游戲或媒體的系統(tǒng)或Spotify等音樂市場(chǎng)。
簡(jiǎn)單來(lái)說,您可能會(huì)登錄Hulu等平臺(tái),嘗試觀看您喜歡的電視節(jié)目,并收到406錯(cuò)誤消息。在這個(gè)例子中,問題幾乎總是在客戶端。它通常是您用來(lái)啟動(dòng)平臺(tái)的計(jì)算機(jī)、網(wǎng)絡(luò)或其他設(shè)備。
盡管任何平臺(tái)都可能發(fā)生這種情況,但一些通常報(bào)告406錯(cuò)誤的平臺(tái)包括:
此列表遠(yuǎn)非完整,但它可以讓您了解406錯(cuò)誤可能發(fā)生的位置。
媒體和游戲平臺(tái)很復(fù)雜,有很多限制,這些限制取決于您的位置或網(wǎng)絡(luò)配置。由于所有移動(dòng)部件,您可能會(huì)遇到這樣的錯(cuò)誤。
盡管我們無(wú)法幫助您對(duì)每個(gè)特定平臺(tái)進(jìn)行故障排除,但請(qǐng)考慮執(zhí)行以下建議并檢查錯(cuò)誤是否已解決:
如果所有其他方法都失敗了,請(qǐng)轉(zhuǎn)到您的搜索引擎并輸入您的平臺(tái)名稱以及“+ 406 錯(cuò)誤代碼”以獲得特定于平臺(tái)的故障排除建議。這通常會(huì)顯示論壇和支持文檔,以指導(dǎo)您完成整個(gè)過程。
接下來(lái),是時(shí)候探索用于您的網(wǎng)站或應(yīng)用程序的系統(tǒng)了。您可能會(huì)發(fā)現(xiàn)您的內(nèi)容管理系統(tǒng)(例如WordPress)是“406 Not Acceptable”錯(cuò)誤的直接原因,因?yàn)槟恼军c(diǎn)文件中的某些內(nèi)容很復(fù)雜。
無(wú)論是使用WordPress還是任何其他內(nèi)容管理系統(tǒng),請(qǐng)查看您上次更新的時(shí)間。無(wú)論如何,WordPress都有一個(gè)堅(jiān)固的默認(rèn)基礎(chǔ)架構(gòu),旨在避免這些類型的錯(cuò)誤。
但是,特定的插件、主題或手動(dòng)調(diào)整的編碼可能會(huì)產(chǎn)生站點(diǎn)文件違反客戶端或服務(wù)器請(qǐng)求的情況。簡(jiǎn)單升級(jí)到CMS的最新版本即可立即解決問題。
要確定它是否是您的CMS ,請(qǐng)首先回滾發(fā)生在核心文件上的任何最近升級(jí)。您可能已經(jīng)知道,WordPress會(huì)定期向其系統(tǒng)發(fā)送更新。大多數(shù)更新會(huì)自動(dòng)發(fā)生,但舊版本仍需要您單擊按鈕。
此外,WordPress和其他CMS使用多個(gè)移動(dòng)部件,如插件、主題和擴(kuò)展。這些也會(huì)定期更新,因此您可能需要回滾其中一些。
對(duì)于WordPress之外的所有系統(tǒng),搜索“平臺(tái)名稱 + 如何降級(jí)”。
如果您使用WordPress,您可以輕松降級(jí)您的WordPress網(wǎng)站,有效地將其回滾到以前的版本之一:
降級(jí)到以前的WordPress版本
該指南概述了以下降級(jí)WordPress網(wǎng)站的方法,其中大部分只需要幾分鐘:
WordPress插件和主題向與核心WordPress文件交互的站點(diǎn)文件添加額外代碼。信譽(yù)良好的插件通常不會(huì)引起任何問題,但偶爾會(huì)發(fā)生沖突。插件、主題或第三方擴(kuò)展可能是406錯(cuò)誤的原因。
識(shí)別麻煩的插件或主題的行之有效的方法是一一停用您的插件和主題。禁用每個(gè)后,檢查406錯(cuò)誤是否已消失。如果是這樣,你就找到了問題所在。如果它沒有消失,請(qǐng)重新安裝插件或主題并繼續(xù)卸載下一個(gè)。
轉(zhuǎn)到WordPress中的插件選項(xiàng)卡并一個(gè)一個(gè)地停用每個(gè)插件。
不幸的是,刪除的“問題”插件仍然可能會(huì)影響您的WordPress數(shù)據(jù)庫(kù),因?yàn)椴寮梢酝耆L問數(shù)據(jù)庫(kù)才能正常工作。因此,即使插件的刪除使406錯(cuò)誤消失,您仍然應(yīng)該檢查數(shù)據(jù)庫(kù)的狀態(tài)。否則,您將來(lái)仍有可能會(huì)遇到更多問題。
如果插件或主題不是罪魁禍?zhǔn)祝€應(yīng)該檢查您的數(shù)據(jù)庫(kù)是否是錯(cuò)誤的主要來(lái)源。有時(shí),數(shù)據(jù)庫(kù)更改,無(wú)論是偶然的還是有意的,都會(huì)成為出現(xiàn)406錯(cuò)誤的主要原因。
要掃描和修復(fù)您的數(shù)據(jù)庫(kù),請(qǐng)考慮以下解決方案:
使用WP-Optimize之類的優(yōu)化工具清理數(shù)據(jù)庫(kù)。圖片來(lái)源: WP-Optimize
之前的建議側(cè)重于客戶端和面向CMS的故障排除?,F(xiàn)在我們將考慮所有服務(wù)器端問題。如果您沒有使用CMS或知道406錯(cuò)誤與您的CMS或客戶端計(jì)算機(jī)沒有連接,則此提示以及以下提示是最佳選擇。
服務(wù)器故障排除的第一步是檢查日志。無(wú)論您使用什么類型的Web應(yīng)用程序、CMS或Web設(shè)計(jì)系統(tǒng);他們都有服務(wù)器端日志。
應(yīng)用程序日志存儲(chǔ)該Web 應(yīng)用程序的整個(gè)(或最近)歷史記錄,以及有關(guān)每個(gè)數(shù)據(jù)庫(kù)查詢、提供的結(jié)果、請(qǐng)求的頁(yè)面等等的信息。另一方面,服務(wù)器日志包含有關(guān)用于運(yùn)行 Web 應(yīng)用程序的服務(wù)器或硬件的運(yùn)行狀況和狀態(tài)的信息。
檢查所有可能導(dǎo)致406錯(cuò)誤的日志,一般為:
就像大多數(shù) Web 應(yīng)用程序都有服務(wù)器和錯(cuò)誤日志一樣,它們通常也提供有關(guān)調(diào)試應(yīng)用程序本身的信息。調(diào)試涉及通過應(yīng)用程序的代碼來(lái)查找和消除小錯(cuò)誤(或錯(cuò)誤)。
運(yùn)行WordPress(以及任何與此相關(guān)的任何 Web 應(yīng)用程序)完整掃描的最佳方法之一是調(diào)試數(shù)據(jù)庫(kù)和網(wǎng)站文件。幸運(yùn)的是,調(diào)試并不意味著您必須通讀每一行代碼并自己找出錯(cuò)誤。
406錯(cuò)誤的問題在于它可以在許多不同的情況下彈出。作為普通消費(fèi)者瀏覽Hulu或Netflix時(shí),您可能會(huì)看到“406 Not Acceptable HTTP”錯(cuò)誤。
但沒有什么是一點(diǎn)點(diǎn)故障排除無(wú)法解決的。更令人擔(dān)憂的是406錯(cuò)誤發(fā)生在您的網(wǎng)站或應(yīng)用程序上。對(duì)于這些實(shí)例,您需要檢查服務(wù)器和CMS站點(diǎn)文件。
如果是您的網(wǎng)站,您將希望防止錯(cuò)誤再次發(fā)生。插件、主題和人為錯(cuò)誤總是會(huì)起作用,但我們有一些建議可以讓您的數(shù)據(jù)庫(kù)和站點(diǎn)文件在未來(lái)保持干凈:
您可以通過多種方式修復(fù)406錯(cuò)誤。只要您知道所看到的內(nèi)容以及在哪里尋找修復(fù)程序,您就應(yīng)該能夠清除錯(cuò)誤。雖然這不是更常見的WordPress錯(cuò)誤之一,但如果您的配置不正確,您會(huì)不時(shí)看到它。
對(duì)于解決“406 Not Acceptable”錯(cuò)誤,您還有其他建議嗎?請(qǐng)?jiān)谙旅娴脑u(píng)論部分分享它們!

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流