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狀態程式碼的更多資訊:
評論留言