- 錯誤型別:
- HTTP錯誤
- 錯誤名稱:
- 400错误请求
- 英文名稱:
- 400 Bad Request
- 錯誤描述:
- 服务器将400 Bad Request(也称为400错误或称为400错误请求)视为一般客户端错误,当服务器确定该错误不属于任何其他状态代码类别时,将返回此错误请求。
- 錯誤變體:
- “Bad Request – Invalid URL”“HTTP Error 400”“Bad Request. Your browser sent a request that this server could not understand.”“HTTP Status 400 – Bad Request”“HTTP Error 400 – Bad Request”“400 – Bad Request. The request could not be understood by the server due to malformed syntax. The client should not repeat the request without modifications.”“400 Bad Request. Request Header Or Cookie Too Large”“Bad Request – Error 400”
當網站無法載入時,提示你一個錯誤碼而你又束手無措,那真的很煩人。最為常見的一個是400 Bad Request。但當你瞭解為什麼會發生這種情況,你便知道如何解決問題了。
4xx狀態程式碼與來自客戶端的無效或損壞請求有關。下面我們將詳細說明引起400 Bad Request錯誤的原因以及解決該問題的方法。
什麼是400錯誤請求?
伺服器將400 Bad Request(也稱為400錯誤或稱為400錯誤請求)視為一般客戶端錯誤,當伺服器確定該錯誤不屬於任何其他狀態程式碼類別時,將返回此錯誤請求。
那麼關鍵點就出來了,400 Bad Request這個錯誤是與客戶端在提交請求時伺服器處理之前發生的事情。
什麼導致400錯誤請求
有多種根本原因可以觸發400 Bad Request錯誤,即使此錯誤並非特定於任何特定的瀏覽器或作業系統,其修復方法也確實有所不同。
1. URL字串語法錯誤
由於URL輸入錯誤,語法錯誤或包含非法字元的URL,都可能會導致400 Bad Request錯誤。
如果URL編碼不正確,則可能發生這種情況。以下是一個URL的示例,該URL包含伺服器無法處理的字元,因此會觸發400 Bad Request錯誤。
https://twitter.com/share?lang=en&text=Example%20of%20malformed%%20characters%20in%20URL
請注意,URL中的格式錯誤單詞後多出了一個%字元。正確空格編碼應該是%20而不是%%20。
非法字元也會觸發400錯誤請求。以下網址包含一個{字元,這是不允許的。因此,它導致相同型別的錯誤。
https://twitter.com/share?lang=en&text=Example%20of%20malformed{%20characters%20in%20URL
2. 無效瀏覽器快取和Cookie
即使URL是100%正確,由於瀏覽器快取檔案損壞或瀏覽器cookie過期/損壞,也可能會導致400 Bad Request發生。
上次登入後一段時間,當您嘗試訪問WordPress網站的管理後臺時,可能會遇到400錯誤請求。這是因為處理登入身份驗證資料的Cookie可能已損壞而無法成功完成而無法成功地將您驗證為具有管理員許可權的有效使用者。這導致連線被拒絕,並觸發400 Bad Request錯誤。
3. DNS查詢快取
當本地儲存的DNS資料與註冊的DNS資訊不同步時,可能會發生400錯誤請求。
所有域名都是IP地址的別名。您可以將IP地址視為“始終呼叫”要連線的特定伺服器的電話號碼。首次訪問網站時,會發生一個名為“名稱解析”的過程,即域名解析為伺服器的特定IP地址。
為了加快處理速度,這些詳細資訊儲存在本地計算機DNS快取上,因此不必為給定網站的每次訪問都進行名稱解析過程。這類似於瀏覽器快取HTML,CSS,JavaScript,媒體和其他檔案。
4. 檔案太大
當您嘗試體積較大的檔案而無法滿足網站上傳請求時,也會發生400錯誤請求。這與伺服器的檔案大小限制有關,並將根據其設定方式而有所不同。
5. 通用伺服器錯誤
有時也可能由於伺服器端問題而觸發此錯誤。具體來說,狀態碼為400可能表示伺服器出現一般性問題,伺服器故障或其他未指定的臨時性問題。
如果在嘗試連線到第三方網站時發生這種情況,那實際上不在您的控制範圍內,最好的辦法是嘗試重新整理瀏覽器並定期檢查問題是否已由網站所有者解決。
嘗試在其他瀏覽器上,或者在完全不同的機器/裝置上進行測試,以驗證這是否是由於伺服器端問題導致。
如果您無法通過任何其他瀏覽器,計算機,作業系統或其他裝置連線到該站點,則很可能是伺服器端的問題。
不同瀏覽器提示的400錯誤請求
大多數情況下,“ 400錯誤請求”與客戶端問題有關。在Chrome瀏覽器中400 Bad Request錯誤提示如下圖。
Chrome提示400錯誤請求
但是其他瀏覽器呢?
Firefox瀏覽器400錯誤請求
Firefox提示400錯誤請求
Safari瀏覽器400錯誤請求
Safari提示400錯誤請求
Microsoft Edge瀏覽器400錯誤請求
Microsoft Edge提示400錯誤請求
所有瀏覽器都返回通用且無用的400狀態程式碼訊息,不會提示任何解決問題的方法。在Firefox和Safari中,瀏覽器視窗完全空白,連400 Bad Request錯誤的蹤影你都看不到!
不用慌,我們在下面整理了一系列辦法,可以幫助你解決400 Bad Request錯誤。
如何修復400錯誤請求
總體而言,我們將解決瀏覽器400錯誤請求的解決辦法歸納為以下7種:
在深入研究解決400 Bad Request錯誤的不同方法之前,您可能會注意到幾個步驟涉及重新整理本地快取資料。
的確,如果您的電腦根本不快取任何檔案或資料,則連線錯誤問題可能會大大減少。但是快取檔案有其好處,如果瀏覽器不使用快取技術,Web瀏覽體驗大打折扣。
1. 檢查提交的URL
發生400 Bad Request錯誤的最常見原因之一,自然應該從這個明顯的罪魁禍首開始,即URL字串本身。在瀏覽器中手動輸入URL時,很容易鍵入包含不需要的字元。
檢查您嘗試訪問的域名和特定頁面地址的拼寫和鍵入是否正確。另外,請確保它們之間用正斜槓分隔。如果URL包含特殊字元,請確保它們已正確編碼並且是合法的URL字元。
對於較長的URL,您可能會發現使用線上URL編碼器/解碼器不容易出錯。這些型別工具還能夠自動檢測URL中的非法字元。
確定URL正確後,再嘗試在瀏覽器中再次訪問它。如果仍然出現400 Bad Request錯誤,那麼嘗試清除下瀏覽器快取!
2. 清除瀏覽器快取
如果任何本地儲存的網站檔案已損壞,則可能導致返回400 Bad Request錯誤,而不是預期的網站內容。
這包括網站正常執行所需的所有檔案型別,例如:
- HTML
- JavaScript
- 文字/配置檔案
- CSS
- 媒體(影象,視訊,音訊)
- 資料檔案(XML,JSON)
最初訪問該網站時,瀏覽器會將這些檔案儲存在本地計算機上。
要解決此問題,需要清除瀏覽器快取。
在Chrome瀏覽器中,點選右上角的三點圖示,然後從彈出選單中選擇更多工具>清除瀏覽資料。
清除瀏覽器快取選單選項
這將顯示“清除瀏覽資料”視窗,選中了“快取的圖片和檔案”選項,然後單擊“清除資料”按鈕以清除瀏覽器快取。
您還可以通過“時間範圍”下拉選單選擇刪除特定時間範圍內的最新檔案。但是,為確保刪除所有可能損壞的檔案,我們建議通過選擇“時間不限”選項來刪除所有本地儲存的檔案。
清除瀏覽資料選項
3. 清除瀏覽器Cookie
如果清除瀏覽器快取不起作用,那麼再嘗試刪除cookie。一個網站可能使用數十種不同的Cookie。如果其中只有一個過期或損壞,則可能觸發400錯誤請求。
要在Chrome中清除Cookie,請點選右上角帶有三個點的圖示,開啟“清除瀏覽資料”視窗,然後從彈出選單中選擇更多工具>清除瀏覽資料。
確保已選中Cookie和其他網站資料,然後為日期範圍選項選擇時間不限以刪除所有當前網站Cookie。
清除瀏覽資料選項(cookie)
完成後,嘗試再次載入返回400 Bad Request錯誤的網站。
4. 檔案上傳超出伺服器限制
如果您上傳的檔案超出網站伺服器檔案大小限制,則會導致400錯誤請求。
您可以上傳較小的檔案來進行測試。如果成功,則可能是檔案大小限制原因導致錯誤發生,您需要找到某種方法來減小體積(比如壓縮),再重新上傳。
這取決於您嘗試上傳的檔案型別,網站可以找到許多支援壓縮大型影象,視訊和音訊檔案的軟體工具。
這是WordPress中的一個大問題。WP使用者在嘗試上傳檔案時總是遇到HTTP錯誤。這也不僅僅發生在WordPress上。但是使用 WP,這是一個非常簡單的修復。但是,為了確保您基於檔案大小設定的400,請將較小的檔案上傳到伺服器。如果它通過,則檔案大小限制需要增加的可能性更高。最後,登出並重新登入以修復基於上傳的400錯誤碼。
在您的wp-config.php檔案中,您應該找到如下所示的一行:define('WP_MEMORY_LIMIT', '64M')
;
如果你沒有找到它,你可以把它複製/貼上到/* That’s all, stop editing! Happy blogging. */. 然後將64M調整為128M或256M 。這樣做將更改WordPress網站的最大檔案上傳大小(以兆位元組為單位)。
您還可以通過.htaccess檔案和主題目錄中的functions.php檔案更改最大檔案大小 。如果您更願意走那條路,參考此文件以完成這些步驟。
5. 清除DNS快取
另一個400錯誤請求的常見原因是本地DNS查詢資料損壞或過時。
重新整理您的DNS快取的方式與清除瀏覽器快取和刪除cookie的方式大致相同。(順便說一下,它們是完全分開的。)不過概念是一樣的。您的計算機正在儲存您訪問過的站點的DNS資訊,以便在重新訪問它們時更快地載入它們。但是……有時舊資訊會與網站的最新版本發生衝突。你會得到一個400錯誤碼。
不過,這是一個非常簡單的修復。在Windows中,您只需要開啟命令提示符。
只需在搜尋中輸入cmd,當您出現提示時,只需輸入 ipconfig /flushdns(帶空格)。這可能已經修復了您的HTTP錯誤碼400。
如果您使用的是 Mac,則非常相似。您搜尋 terminal 並輸入 sudo killall -HUP mDNSResponder。如果這不起作用,請嘗試 sudo discoveryutil udnsflushcaches。
本地DNS資料不是由瀏覽器儲存,而是由作業系統本身儲存。不同系統的DNS資料清除方法不盡相同,檢視DNS清除/重新整理教程。
6. 停用瀏覽器擴充套件
如果您安裝了影響網站Cookie的瀏覽器擴充套件,這也可能是罪魁禍首。在嘗試再次連線到該網站之前,請嘗試暫時將其禁用以檢視是否起作用。
就像WordPress除錯一樣,您要確保第三方軟體不會導致問題。如果您執行任何瀏覽器擴充套件或附加元件,最好單獨禁用它們以檢視其中一個是否導致錯誤彈出。
你可以一次完成這一切,但你不知道誰是罪魁禍首。所以單獨檢查它們。如果您可以重新載入頁面並且沒有出現400錯誤,那麼要麼學習在沒有該附加元件的情況下生活一段時間,要麼檢查擴充套件程式市場以確保它已更新到最新版本。
您可能沒有考慮過這可能是一個問題,但是如果您無路可走,這值得一試。
7. 排除裝置和網際網路連線故障
現在,如果你訪問的每個頁面都返回 400 Bad Request,那麼你可能只是網路連線不暢。如果是這種情況,請嘗試切換到不同的網路。例如,您可以關閉移動裝置的 Wi-Fi 功能,使用蜂窩資料。
為什麼這樣做有效?網路問題可能導致請求無法正確到達伺服器。
如果這樣可以解決錯誤,則可以對網際網路連線進行故障排除。
怎麼辦?
- 重啟裝置:這可以清除隨機存取記憶體(RAM)、重新整理臨時快取並關閉正在執行的程式,因此可能有助於解決 “錯誤請求 ”問題。
- 重啟 Wi-Fi 路由器:簡單的重啟可以清除臨時故障。
- 檢查你的連線:在 Wi-Fi 和有線連線之間切換,或嘗試在不同的網路上訪問網站。
- 禁用 VPN 或代理服務:如果你正在使用 VPN 或代理服務,請暫時禁用它,看看是否是它導致了問題。
- 執行網路故障排除程式:
- 在 MacOS 上,使用無線診斷工具。
- 在 Windows 11 上,進入 設定> 系統 > 故障排除 > 其他故障排除程式 > 網路和 Internet 。單擊執行 。
如果這些選項都不能清除錯誤,而且您在多個或所有網站上仍然收到 400 Bad Request 錯誤,請考慮聯絡服務提供商幫助解決問題。
監控和預防400 Bad Request錯誤
未雨綢繆可以讓您避免未來的麻煩。以下是如何監控網站健康狀況的方法:
使用網站審計工具
Google Search Console 等工具可以掃描網站是否存在錯誤,包括 400 Bad Request 問題。具體操作如下
- 設定工具:按照工具說明將其連線到網站。
- 執行掃描:啟動對網站的抓取以檢測錯誤。
- 分析結果:查詢任何返回 400 狀態程式碼的頁面。
- 修復問題:利用所提供的洞察力更正 URL、修復斷開的連結或調整伺服器設定。
定期更新網站
保持網站更新可以防止關鍵的安全問題和其他可能導致錯誤(包括 400 錯誤)的問題。更新所有元件,尤其是外掛和主題,以確保相容性。確保您的內容管理系統(CMS)始終更新到最新版本。
教育你的團隊
確保任何新增內容或管理網站的人員都瞭解避免引入錯誤的最佳實踐,包括我們在本文中介紹的所有內容。
小結
如果遇到400錯誤請求,可以執行上述多種操作來嘗試解決此問題。
在絕大多數情況下,“ 400錯誤請求”是由向伺服器提交請求或本地快取引起的客戶端問題。這篇文章中概述的解決方案不需要專業知識,只需要緊跟步驟,即大機率解決400錯誤請求報錯!
但是,有時候“400錯誤請求”狀態程式碼可能由於通用伺服器問題引起。通過在不同裝置不同瀏覽器上測試站點,可以快速診斷是否是這樣的問題。如果懷疑是伺服器端錯誤,除了稍後再試你別無他法。
評論留言