HTTP狀态代碼就像來自Web伺服器的簡短注釋,它被添加到網頁的頂部。它實際上不是網頁的一部分。相反,它是來自伺服器的消息,讓您知道伺服器收到檢視頁面請求後的情況。
每次浏覽器與伺服器互動時都會傳回這些類型的消息,即使您沒有經常看到它們。如果您是網站所有者或開發人員,了解HTTP狀态代碼至關重要。HTTP狀态代碼是診斷和修複網站配置錯誤的重要工具。
本文介紹了最常見的伺服器狀态和錯誤代碼,并說明它們所代表的意義。
他們來自哪裡?他們去哪裡?
每次單擊連結或鍵入URL并按“Enter”鍵,浏覽器都會向Web伺服器發送請求。Web伺服器接收并處理請求,然後将請求的資源與HTTP标頭一起發回。
HTTP狀态代碼将在HTTP标頭中傳遞到您的浏覽器。雖然每次浏覽器請求網頁或資源時都會傳回狀态代碼,但大多數情況下您都沒有看到它們。當出現問題時,您可能會在浏覽器中看到HTTP狀态代碼。這是伺服器的回報資訊,告訴你:“有些東西不對。這是一個解析出錯的代碼。“
Google 404 HTTP狀态代碼
如果您想檢視浏覽器通常不會顯示的狀态代碼,可以使用許多不同的工具來檢視。浏覽器擴充适用于開發人員友好的浏覽器,如Chrome和Firefox,還有許多基于Web的标題提取工具,如Web Sniffer。
要使用這些工具檢視HTTP狀态代碼,請檢視報告頂部附近出現的行“Status:HTTP / 1.1”,後跟伺服器傳回的狀态代碼。
HTTP狀态代碼
HTTP狀态代碼清單分為5個類:
- 100’s :資訊代碼,表示浏覽器發起的請求正在繼續。
- 200’s :伺服器成功接收,了解和處理浏覽器請求時傳回的成功代碼。
- 300’s :當新資源替換所請求的資源時傳回重定向代碼。
- 400’s :用戶端錯誤代碼,表示請求存在問題。
- 500 :伺服器錯誤代碼,表示請求已被接受,但伺服器上的錯誤阻止了請求的完成。
在每個類中,存在各種伺服器代碼,并且可以由伺服器傳回。每個單獨的代碼都具有特定且獨特的含義。
HTTP狀态代碼清單
有超過40種不同的伺服器狀态代碼。但是,實際上你會遇到的不到十幾個。如果您營運一個網站,那麼就應該懂得如何處理這些代碼,能夠讀懂HTTP狀态代碼後面的意義及時處理産生錯誤代碼的問題。檢視下面的HTTP狀态代碼清單:
200狀态代碼
- 200:“一切都好。” 這是當網頁或資源完全符合預期時所傳遞的代碼。
300狀态代碼
- 301:“請求的資源已被永久遷移。” 當網頁或資源被永久替換為其他資源時,将傳遞此代碼。它用于永久URL重定向。
- 302:“請求的資源已被臨時移動。” 此代碼用于訓示找到所請求的資源,而不是在預期的位置。它用于臨時URL重定向。
- 304:“自上次通路以來,請求的資源未被修改。” 此代碼告訴浏覽器存儲在浏覽器緩存中的資源未更改。它用于通過重用以前下載下傳的資源來加速網頁傳送。
400狀态代碼
- 401:“未授權。” 當目标資源缺少有效的身份驗證憑據時,伺服器傳回此資訊。
- 403:“禁止通路該資源。” 當使用者嘗試通路他們無權通路的内容時,将傳回此代碼。例如,嘗試在不登入的情況下檢視受密碼保護的内容可能會産生403錯誤。
- 404:“找不到請求的資源。” 這些消息中最常見的錯誤消息。此代碼表示請求的資源不存在,并且伺服器不知道它是否存在。
- 405:“不允許使用方法。” 這是在托管伺服器(源伺服器)支援接收的方法時生成的,但目标資源不支援。
- 406:“不可接受的響應。” 所請求的資源能夠僅根據請求中發送的Accept頭生成不可接受的内容。
- 408:“請求逾時。” 當伺服器在等待來自浏覽器的完整請求時發生逾時所生成的代碼。換句話說,伺服器沒有獲得浏覽器發送的完整請求。一個可能的原因可能是網絡擁塞導緻浏覽器和伺服器之間資料包丢失。
- 410:“請求的資源不可用,不會再傳回。” 類似于404“未找到”代碼,除了410表示條件是預期的并且是永久的。
- 429:“請求太多。” 當使用者在給定時間内發送了太多請求(速率限制)時由伺服器生成。這有時可能來自嘗試通路您網站的bots或腳本。
請求太多導緻的429錯誤碼
- 499:“用戶端關閉請求。” 當用戶端在NGINX仍在處理請求時關閉請求,NGINX會傳回此請求。
500個狀态代碼
- 500:“伺服器上出現錯誤,無法完成請求。” 一般代碼僅表示“伺服器内部錯誤”。伺服器上出現問題,并且未提供所請求的資源。此代碼通常由第三方插件,錯誤的PHP或甚至與資料庫斷開的連接配接導緻。稍後我們将會寫文章,說明如何修複WordPress資料庫連接配接錯誤以及伺服器内部500錯誤。
建立資料庫連接配接時出錯
- 501:“伺服器不具備完成請求的功能。” 此錯誤表示伺服器不支援完成請求所需的功能。這一般是Web伺服器本身的問題,通常必須由主機解決。稍後,我們也将撰寫文章說明如何解決伺服器内部所導緻的501錯誤。
- 502:“Bad Gateway。” 此錯誤代碼通常表示一台伺服器收到另一台伺服器的無效響應。有時查詢或請求将花費太長時間,是以它被伺服器取消或終止,并且與資料庫的連接配接中斷。
- 503:“伺服器現在無法處理此請求。” 請求現在無法完成。此代碼可能由無法處理其他請求的重載伺服器傳回。檢視我們關于如何修複503服務不可用錯誤的教程。
- 504:“作為網關的伺服器逾時,等待另一台伺服器響應。” 當處理請求涉及兩台伺服器時,代碼傳回,第一台伺服器逾時等待第二台伺服器響應。
了解有關HTTP狀态代碼的更多資訊
上面的清單解釋了您可能會定期遇到的大多數HTTP狀态代碼。但是,您可能會不時遇到更多不常見的其他HTTP狀态代碼。您可以在以下連結了解罕見HTTP狀态代碼的更多資訊:
- 來自維基百科的HTTP狀态代碼的完整清單
- 來自Internet工程任務組(IETF)的狀态代碼定義。
-
RFC 7231
via https://www.wbolt.com/http-status-codes.html