不同400錯誤碼的定義

更新時間:2022-05-16 / 文章作者:Timothy Shim

400 錯誤代碼是表明服務器不理解請求的 HTTP 狀態代碼。 這些錯誤可能是由無效請求引起的,也可能是由於服務器遇到問題而未能提供您要查找的內容。 

問題是大多數錯誤代碼都是由一個數字和幾個單詞的簡短描述來表示的。 為了幫助那些正在努力理解這一點的人,我將稍微擴展描述以獲得更好的清晰度。

是什麼導致錯誤請求錯誤?

錯誤請求錯誤是由多種原因造成的,但最常見的原因是用戶輸入錯誤的 URL。 當個人錯誤地使用斜線或 & 符號或完全遺漏部分 URL 時,可能會發生這種情況。 服務器將難以處理請求並最終返回 400 錯誤代碼。

另一種可能性是用戶輸入了來自外部來源的 URL 並錯誤地複制了它或以某種方式弄錯了。 例如,如果您使用手機打開一個網站,然後輸入一個網站地址,您可能會因為胖手指綜合症(比如我)而誤輸入一些字符。

錯誤請求錯誤的一個不太常見的原因是客戶端-服務器通信有問題。 這可能是因為服務器根本不了解客戶端(您的計算機瀏覽器)所請求的內容,或者即使它了解正在發生的事情,它也無法執行所要求的內容。

如果您收到這種類型的 400 錯誤消息,請嘗試刷新您的頁面或運行其他搜索,直到找到可以正常工作的內容,然後使用該 URL 而不是現在對您造成問題的任何內容。

400 個錯誤代碼列表及其含義

了解這些錯誤的含義以及如何解決它們將有助於您解決網站服務器的問題(如果您將來遇到問題),並且了解它們的定義有助於找出您的網站為何無法正確交付其內容的原因任何給定的時間。

400錯誤的請求

400 Bad Request 錯誤很常見,當資源請求(例如,嘗試訪問網頁或圖像)以某種方式向服務器發送格式錯誤並且無法為您提供資源時,就會發生這種錯誤。 它與 404 Not Found 錯誤幾乎相同,但通常會在可能找到某些東西但被認為不適合客戶端使用的情況下發生。

此狀態代碼的示例包括:

  • 請求包含無效語法或無法完成;
  • 為多餘的消息體提供了無效的 Content-Length 頭域,或者除了 Content-Length 頭域外沒有其他人;
  • 存在欺騙性路由(例如,客戶端試圖通過請求的 URI 標識的主機以外的主機進行代理); 或者
  • 它失敗是因為先前的請求失敗(例如,如果由於“預期”的不安全請求序列失敗而導致請求序列失敗,則 503 響應可能是合適的)。

401未經授權

401 錯誤狀態響應意味著您沒有正確的身份驗證憑據來訪問您嘗試訪問的內容。 當使用中間代理的客戶端身份驗證出現問題時,也經常使用此 HTTP 狀態代碼。

402需要付款

402 錯誤意味著服務器拒絕了請求,因為您沒有付款,或者付款但沒有設置付款方式。 當您在本地計算機上測試站點並且尚未支付託管費用時,通常會遇到此錯誤。 把它想像成你的網站告訴你“首先,付錢給我”。

403故宮

403錯誤
403錯誤在互聯網上是一分錢一分錢

403 錯誤是另一種常見的情況,當存在文件讀取權限不足的網絡服務器進程時會發生這種情況。 它也可能是由於對站點根目錄中的腳本或文件夾的所有權或權限不正確,以及對 Web 空間中的資源缺乏適當的訪問權限造成的。

簡而言之,如果您嘗試使用代表您但尚未由 Internet 服務提供商分配的 IP 地址連接到 URL,您將收到此錯誤; 如果根本沒有這樣的 URL; 或者如果沒有這樣的 URL 並且它屬於其他人(例如,如果他們刪除了他們的網站)。

404未找到

404 Not Found 可能是您可能會遇到的最常見的錯誤代碼。 它表示服務器找不到請求的資源。 在理想情況下,您單擊的每個鏈接或您請求的每個網頁都會有正常的響應時間並準確返回您正在尋找的內容,但實際上,這並不總是發生。

如果用戶在嘗試訪問網頁時收到 404 Not Found 錯誤,則表示發生了以下兩種情況之一:

  • 該頁面在網站上不再可用(或從不可用)。
  • URL 有錯誤 - 例如,地址拼寫錯誤。

在這種情況下,“破碎”的另一個詞是死的(如 死鏈接).

405方法不允許

HTTP 錯誤代碼 405 Method Not Allowed 表示由於某種原因,服務器被配置為拒絕特定的請求方法。 這是針對在特定條件下不允許的請求的 HTTP 標準響應。 例如,如果您嘗試將數據表單發佈到 URL,但您的客戶端配置為使用 GET 方法而不是 POST,您將觸發此錯誤。

您收到此錯誤消息的最可能原因是服務器上的權限配置不正確。 如果您嘗試在您的網站上修復此錯誤,那麼獲得幫助的最佳地點就是您的 託管服務 提供者。 您需要詢問他們是否允許有問題的 HTTP 方法。

您還可以通過在您的 .htacce.ss 文件.

406不可接受

406 Not Acceptable 錯誤是客戶端錯誤代碼。 當服務器無法發送符合請求標頭中請求的格式的響應時,服務器將響應此錯誤。 換句話說,如果您要的是 JPG 文件,而服務器需要向您發送 PDF,它會響應此錯誤。

這個錯誤碼並不常見,有些瀏覽器可能無法正確顯示。

406 狀態碼僅表示您的請求格式存在問題。 響應中不能包含 406 消息正文,所以如果你看到一個,那麼你的端可能有問題。 

這有時可能是由系統上的瀏覽器錯誤或惡意軟件引起的,它會強制每個頁面的源下載為 HTML 即使在您的首選項中指定了其他格式。 此錯誤很可能是由於 URL 請求不正確(例如,輸入“www.examplecom”而不是“www.example​.com”)而發生的。

要求407代理身份驗證

407 Proxy Authentication Required 意味著服務器無法完成請求,因為客戶端缺少適當的身份驗證憑據 代理服務器 即攔截客戶端和服務器之間的請求。

當網站嘗試通過代理服務器加載內容時,通常會發生 407 錯誤,但它沒有從該代理服務器獲得授權。 此錯誤可能與您的 Internet 設置配置不正確或 火牆. 這也可能意味著您正在使用學校或工作場所設置的計算機,而這些實體阻止您訪問某些網站。

408請求超時

使用代碼 408,客戶端在服務器準備等待的時間內沒有產生請求。 你看,當談到互聯網通信時,機器沒有人類的耐心——它們期望立即響應。 而且由於這些機器通常提供重要的信息或服務,它們有時可能是無情的。

408 錯誤最可能的原因是客戶端產生了一個很大的請求(例如下載整個操作系統),或者它產生的請求太快了。 後者通常發生在自動化流程(例如,機器人)中。 

在這兩種情況下,服務器都超時等待請求; 它不再期望從您的瀏覽器接收任何進一步的信息,如果您繼續保持沉默,它將關閉您的連接。

409衝突

409 衝突是一個客戶端錯誤代碼,它表明在您嘗試從網絡服務器發出請求期間發生的事情存在問題。 例如,為了從某人的 電子商務網站上的購物車,您需要首先確保它存在於他們的購物車中才能刪除它。 

如果您嘗試發送刪除請求以刪除不在購物車中的商品,則會導致 409 衝突。 簡單地說,你不能刪除不存在的東西。

410已經過時了

410 Gone 錯誤代碼是對不再存在的資源請求的響應。 服務器不會響應對該資源的任何請求,並且應該將其從客戶端的緩存中刪除。

此錯誤代碼表明該資源已被有意刪除並且不會再回來。 它類似於 404 Not Found,但有時用於代替曾經存在但已被故意刪除的資源的 404 錯誤。

411長度必需

411 Length Required 狀態碼表示服務器期望在客戶端請求中包含一個有效長度值的 Content-Length 頭域。 有效的 Content-Length 標頭值必須存在於請求中並且等於或大於零。

如果 POST 請求不包含 Content-Length 標頭,則用戶代理很可能會拒絕它並顯示錯誤消息,例如“需要 411 長度”或“411 缺少必填字段”。

412前提條件失敗

412 Precondition Failed 響應代碼表明存在服務器尚未滿足的現有條件。 服務器必須使用 Retry-After 標頭或通過發送 417 Expectation Failed 狀態代碼來響應這些先決條件的列表(僅那些未通過檢查的先決條件)。

有時,此錯誤被用作其他類型條件的“OK”響應,例如當用戶已成功通過身份驗證但無權訪問所請求的資源時。 在這種情況下,通常會提供資源的替代表示,如果沒有可用的表示,則返回 404 Not Found。

413有效負載過大

413 Payload Too Large 響應狀態代碼表示您正試圖要求服務器執行它不具備處理能力的任務。 由於它知道請求是不可能滿足的,它通常會放棄並關閉連接。

你不應該太擔心這個錯誤,因為它通常不是永久性的。 有效負載是動態的,服務器將包含一個 Retry-After 標頭字段,以便客戶端稍後可以執行重複請求。

414 URI太長

當您嘗試訪問或使用的 URL 太長並且服務器無法處理它時,會出現 414 URI Too Long 錯誤。 使用代理服務器時最常返回此錯誤代碼,尤其是當您嘗試訪問的 URL 附加了許多參數時。

以下示例顯示瞭如何在瀏覽器中返回 414 代碼的錯誤消息:

Request-URI Too Long 請求的 URL 的長度超過了此服務器的容量限制。

415不支持的媒體類型

415 Unsupported Media Type HTTP 狀態碼的含義正是它的名字所暗示的:服務器拒絕接受客戶端的請求,因為它有一個目標資源不支持的格式的正文。

當請求正文格式不正確或使用不受支持的媒體類型時,通常會發生此錯誤。 例如,POST 請求可能包含 JSON 數據,但包含指定 text/ 的 Content-Type 標頭HTML.

修復此錯誤的理想方法是添加對正確媒體類型的支持或更改正文格式,使其適合您接受的類型之一。

416範圍不滿足

如果您的請求中有 Range 請求頭字段,則 Web服務器 可能會響應此錯誤。 例如,如果範圍說明符值重疊並且不包含 If-Range 請求標頭字段。 

當為字節範圍請求返回此狀態代碼時,響應應該包含一個 Content-Range 實體頭字段,指定所選資源的當前長度。 你不應該使用 多部分/字節範圍內容類型.

417期望失敗

當服務器無法滿足 Expect 請求標頭字段的要求時,您將面臨 417 Expectation Failed 錯誤。 許多應用程序使用此代碼來響應數字簽名或 加密 在消息中使用,並且必須包含對如何處理此類消息的期望。

然後指示客戶端不要在沒有修改的情況下重複請求; 否則,它將繼續收到 417 狀態碼。

第418章 我是茶壺

對於那些覺得開發人員沒有幽默感的人來說,418 I'm a teapot 錯誤似乎旨在證明他們是錯誤的。 當 HTTP 客戶端嘗試用茶壺沖泡咖啡時會返回此錯誤,因為附加的壺實際上是茶壺——又短又粗。 

錯誤代碼是傳統的一部分 IETF 愚人節笑話,在 RFC 2324 中,超文本咖啡壺控制協議。 順便說一句,這不是真的。 我只包括它是因為你們中的一些人會在 Google 上找到它。

421錯誤的請求

當服務器拒絕定向請求時會發生 421 錯誤。 這可能有幾個原因,包括

  • 客戶端已將請求發送到錯誤的端口。
  • 該請求可以被定向到不同的服務器。
  • 服務器可能無法理解請求。
  • 服務器可能無法解釋請求。

422無法處理的實體

422 Unprocessable Entity 是客戶端錯誤,通常表示服務器由於各種原因無法處理請求。 一種常見的可能性是請求的格式不正確。 服務器也可能是個壞小子並發送不應該發送的錯誤消息。

如果您在響應特定請求時收到 422 Unprocessable Entity 錯誤,則無法僅通過更改請求參數來修復它。 它只是意味著由於上述原因,應用程序服務器無法處理您的整個請求。 

當您嘗試在不受支持的 URL 上使用 PUT 或 POST 方法訪問端點時,可能會發生這種情況。

423已鎖定

423 Locked 錯誤是 400 Bad Request 錯誤的子集,這意味著客戶端向服務器發送了一個語法錯誤的請求。 這些錯誤與 401 Unauthorized(或 403 Forbidden)錯誤代碼非常相似,但在這種情況下,身份驗證將無濟於事。 雖然兩者都反映了授權失敗,但它們之間存在本質區別。

在 401 Unauthorized 錯誤中,服務器通知客戶端它缺乏授權客戶端訪問的能力。 響應標頭將包括類似 WWW-Authenticate: Basic realm="Restricted Area" 的內容,當您的瀏覽器看到此標頭時,如果您尚未輸入用戶名和密碼,它將提示您輸入用戶名和密碼。 

如果您輸入正確,那麼您的瀏覽器將重新發送帶有授權標頭的原始請求(如授權:基本 eFVzdEp0EYB0)。

相比之下,在 423 Locked 錯誤中,不可能重新發送這樣的重新發送,因為即使輸入有效的憑據也不會像現在那樣允許授權 - 因此名稱為“Locked” - 因為無論如何它都會被禁止。 

響應標頭將包含類似“允許:獲取 POST HEAD OPTIONS TRACE”的內容; 允許這些方法,但不允許“PATCH”或“DELETE”——這些方法被鎖定在此資源上。

424依賴失敗

此錯誤代碼類似於 503服務不可用,除了服務器未能滿足請求,因為該請求依賴於另一個請求並且該請求失敗。 客戶端不應未經修改就重複相同的請求。 

例如,用戶嘗試使用兩種方法執行操作; 一種方法需要身份驗證,而另一種不需要。 如果用戶未通過身份驗證,他們將收到此錯誤代碼作為響應。

425太早了

未準備好處理請求的服務器返回 425 Too Early 錯誤代碼。 這可能是因為服務器很忙,或者因為它收到了無法處理的請求。 另一種可能性是客戶端使用過時的信息來組合它的初始請求,而這已經改變了。

426需要升級

如果發生 426 錯誤,則表示服務器拒絕根據所選協議處理請求。 可以批准和處理對另一個協議的“升級”。 426 錯誤將包含有關它需要哪些協議的信息。

例如,當請求一個頁面時,瀏覽器可能會收到一個 426 響應,說明它必須使用 HTTPS 而不是 HTTP.

428需要先決條件

428 Precondition Required 狀態意味著必須滿足條件才能滿足請求。 大多數服務器使用它來避免 “丟失更新”問題. 當客戶端獲取資源狀態、修改它並在服務器上替換它時,就會發生這種情況。 

在此期間,狀態被其他人修改——因此,出現了衝突。 可以把它想像成兩個人爭奪在筆記本上使用同一頁面的權利。

Web 服務器使用條件來確保使用它的每個人都擁有可修改狀態的正確副本。 要啟動前置條件檢查,您必須在請求中包含“If-Match”或“If-Unmodified-Since”標頭字段。 例如:

GET /test HTTP/1.1
If-Match: "747060ad8c113d8af7ad2048f209582f

429請求太多

HTTP 錯誤 429 Too Many Requests 是由服務器拒絕 HTTP 請求引起的,因為客戶端在給定時間內發送了太多請求。 此錯誤通常是由某種限速系統引起的,例如 Cloudflare 速率限制反DDoS保護腳本.

速率限制會有所不同,因此除非您是管理限制器的人,否則沒有真正的方法可以預測這一點。 但是,只要您繼續嘗試推送,您的 IP 地址最終很有可能會被禁止。

431請求標頭字段太大

431 狀態碼僅表示您發送到服務器的標頭字段太大。 這也可能意味著標頭字段有問題。 在後一種情況下,響應表示通常會指示太大的特定標頭字段。

原始服務器可以使用狀態碼為 431 的響應來指示請求可能不安全或不適當。 響應必須包含描述為何無法完成此類操作的元數據。

451由於法律原因不可用

當內容因法律問題不可用時,將報告 HTTP 451 錯誤。 如果您收到此錯誤代碼,您應該聯繫您的服務器管理員,他們可以提供有關導致問題的原因以及如何解決問題的更多信息。

由於此錯誤與審查和法律問題有關,因此任何導致錯誤 451 的請求通常都會返回一條通用消息,指出資源因法律原因不可用。

修復 400 錯誤代碼

修復 400 錯誤代碼的方法取決於您是網站的用戶還是所有者。 對於用戶,您無需執行任何操作,只需刷新頁面或稍後重試。 如果這不起作用,您需要聯繫網站的所有者/管理員來修復它。

如果您是網站所有者並在終端中收到此錯誤代碼,則需要了解一些事項。 首先,許多 400 錯誤代碼可能是由於服務器文件中的代碼編寫不當造成的。 您將需要了解這些各種錯誤的含義並找到修復它們的正確行動方案。 

結論

400 錯誤可能會導致很多挫折,但幸運的是,如果您了解網絡服務器想要什麼,它們很容易解決。 幸運的是,每個錯誤都是不同的,並且在您的瀏覽器上會有自己的狀態消息。 這應該可以讓您弄清楚請求失敗的原因以及如何修復它。

如果您仍然遇到請求無法解決的問題,請嘗試聯繫您的託管支持或嘗試其他瀏覽器,因為某些瀏覽器可能會以不同方式處理某些請求。

閱讀更多

關於Timothy Shim

Timothy Shim是一位作家,編輯和科技愛好者。 從信息技術領域開始他的職業生涯,之後迅速地在印刷領域找到方向,並與國際,地區和國內媒體合作,包括ComputerWorld,PC.com,Business Today和The Asian. Banker。 他的專長在於消費者和企業的技術領域。