--- tags: 套件與知識 --- # 狀態碼 當我們從伺服器端收到回應時,HTTP 狀態碼用於表示回應的狀態。下面整理了幾種常見的 HTTP 狀態碼及其意思: ** 粗體為常見狀態碼 1. 1xx 系列(Informational,資訊回應): 這一類型的狀態碼,代表請求已被接受,需要繼續處理。這類回應是臨時回應,只包含狀態行和某些可選的回應頭資訊,並以空行結束。由於HTTP/1.0協定中沒有定義任何1xx狀態碼,所以除非在某些試驗條件下,伺服器禁止向此類客戶端傳送1xx回應。這些狀態碼代表的回應都是資訊性的,標示客戶應該等待伺服器採取進一步行動。(維基百科) * 100 Continue:伺服器已收到請求的起始部分,客戶端應繼續請求的其餘部分。 * 101 Switching Protocols:伺服器已經理解請求,並正在切換到不同的通訊協定。 2. 2xx 系列(Successful,成功回應): 這一類型的狀態碼,代表請求已成功被伺服器接收、理解、並接受。(維基百科) * **200** OK:請求成功,伺服器回傳所需資源。 * **201** Created:請求已成功,並在伺服器上創建了新的資源。 * **204** No Content:請求成功,但伺服器沒有返回任何內容。 3. 3xx 系列(Redirection,重導向): 這類狀態碼代表需要客戶端採取進一步的操作才能完成請求。通常,這些狀態碼用來重新導向,後續的請求位址(重新導向目標)。 按照HTTP/1.0版規範的建議,瀏覽器不應自動訪問超過5次的重新導向。(維基百科) * 301 Moved Permanently:所請求的資源已永久移動到新的 URL。 * 302 Found:所請求的資源暫時移動到新的 URL。 * 304 Not Modified:請求的資源未修改,可使用瀏覽器快取版本。 4. 4xx 系列(Client Error,用戶端錯誤): 這類的狀態碼代表了客戶端看起來可能發生了錯誤,妨礙了伺服器的處理。除非回應的是一個HEAD請求,否則伺服器就應該返回一個解釋當前錯誤狀況的實體,以及這是臨時的還是永久性的狀況。這些狀態碼適用於任何請求方法。瀏覽器應當向使用者顯示任何包含在此類錯誤回應中的實體內容。(維基百科) * **400** Bad Request:請求無效或無法被伺服器理解。 * **401** Unauthorized:未經授權,需要驗證身份。 * **403** Forbidden主條目:伺服器已經理解請求,但是拒絕執行它。與401回應不同的是,身分驗證並不能提供任何幫助。 * **404** Not Found:所請求的資源不存在。 5. 5xx 系列(Server Error,伺服器錯誤): 表示伺服器無法完成明顯有效的請求。這類狀態碼代表了**伺服器**在處理請求的過程中有錯誤或者異常狀態發生,也有可能是**伺服器**意識到以當前的軟硬體資源無法完成對請求的處理。除非這是一個HEAD請求,否則伺服器應當包含一個解釋當前錯誤狀態以及這個狀況是臨時的還是永久的解釋資訊實體。瀏覽器應當向使用者展示任何在當前回應中被包含的實體。這些狀態碼適用於任何回應方法。(維基百科) * **500** Internal Server Error:伺服器內部錯誤。 * 502 Bad Gateway:伺服器作為閘道或代理時收到無效回應。 * **503** Service Unavailable:伺服器暫時無法處理請求,通常是由於過載或維護,過一陣子就會回來