HTTP狀態碼(HTTP狀態碼)是一種三位數字代碼,用于表示Web服務器的HTTP響應狀態。它由rfc2616規范定義,并由rfc2518、rfc2817、rfc2295、rfc2774、rfc4918等擴展。所有狀態代碼的第一個數字表示響應的五種狀態之一。消息(1個字)(臨時響應)是一個狀態代碼,表示請求已被接受,需要進一步處理。這種類型的響應是一個臨時響應,它只包含狀態行和一些可選的響應頭信息,并以空行結尾。
由于HTTP/1.0協議中沒有定義1XX狀態代碼,因此服務器禁止向此類客戶機發送1XX響應,除非在某些實驗條件下。100Continue客戶端應繼續發送請求。此臨時響應用于通知客戶機其某些請求已被服務器接收,但尚未被拒絕。
客戶機應該繼續發送其余的請求,或者在請求完成后忽略響應。請求完成后,服務器必須向客戶端發送最終響應。101交換協議服務器已經了解客戶端的請求,并將通過升級頭通知客戶端使用不同的協議來完成請求。
在發送響應的最后一行空白之后,服務器將切換到升級頭中定義的協議。只有在切換新協議更有益時,才應采取類似措施。例如,切換到新的HTTP版本比舊版本更有利,或者切換到實時和同步的協議來傳輸利用這些特性的資源。
102處理是WebDAV(RFC2518)擴展的狀態代碼,表示處理將繼續。成功(2字)(success)是一種狀態代碼,表示服務器已成功接收、理解和接受請求。200OK請求已成功,請求的所需響應頭或數據體將隨響應一起返回。已經實現了201created請求,并根據請求的要求創建了一個新的資源,其uri已返回位置頭信息。
如果不能及時建立所需資源,應將其返回至“202接受”。202接受的服務器已接受該請求,但尚未對其進行處理。正如可能被拒絕一樣,請求最終可能會被執行,也可能不會被執行。在異步操作的情況下,沒有更方便的方法發送此狀態代碼。
返回202狀態代碼響應的目的是允許服務器接受來自其他進程的請求(例如,每天只執行一次的基于批處理的操作),而不必讓客戶機一直連接到服務器,直到批處理操作完成。接收請求處理并返回202狀態代碼的響應應包含一些指示返回實體中處理的當前狀態的信息,以及指向處理狀態監視器或狀態預測的指針,以便用戶可以估計操作是否已完成。
203非權威信息服務器已成功處理該請求,但返回的實體頭元信息不是原始服務器上的有效確定集,而是本地或第三方的副本。當前信息可以是原始版本的子集或超集。例如,包含資源的元數據可能會導致原始服務器知道元信息super。不需要使用此狀態代碼,僅當響應返回200OK而不使用此狀態代碼時才適用。
204NoContent服務器成功處理了請求,但不需要返回任何實體內容,并且希望返回更新的元信息。響應可能以實體頭的形式返回新的或更新的元信息。如果存在這樣的頭信息,它應該對應于請求的變量。如果客戶機是瀏覽器,則用戶瀏覽器應保留發送請求的頁面,而不更改文檔視圖,即使根據規范的新的或更新的元信息應應用于用戶瀏覽器活動視圖中的文檔。
因為204響應被禁止包含任何消息體,所以它總是以消息頭后面的第一個空行結束。205ResetContent服務器成功地處理了請求,但沒有返回任何內容。但是,與2004年的響應不同,返回此狀態代碼的響應要求請求者重置文檔視圖。此響應主要用于在接收到用戶輸入后立即重置表單,以便用戶可以輕松地啟動另一個輸入。與2004年的響應一樣,該響應也被禁止包含任何消息體,并以消息頭后面的第一行空白結束。
206部分內容服務器已成功處理了一些GET請求。像flashget或thunderbolt這樣的HTTP下載工具使用這些響應來實現斷點延續,或者將一個大文檔分解為多個下載段以便同時下載。請求必須包含指示客戶端所需內容范圍的范圍頭信息,并且可以包含作為請求條件的if-range。響應必須包含以下標題字段:內容范圍用于指示此響應中返回的內容的范圍;
如果內容類型是多部分/字節部分多部分下載,則每個多部分段落都應包含內容范圍字段,以指示此段落的內容范圍。如果響應包含內容長度,則其值必須與返回的內容范圍的真實字節數匹配。日期標記和/或內容位置,如果相同的請求應該返回200個響應。
expires、cachecontrol和/或vary,前提是它們的值可能與之前相同變量的其他響應對應的值不同。