1. 程式人生 > >HTTP狀態碼具體解釋

HTTP狀態碼具體解釋

網址 沖突 功能 servle 媒體 put請求 設置 其它 響應狀態

HTTP狀態碼(HTTP Status Code)是用以表示網頁serverHTTP響應狀態的3位數字代碼。它由 RFC 2616 規範定義的,並得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等規範擴展。

HTTP狀態碼分五大類:

100-199 用於指定client應對應的某些動作。
200-299 用於表示請求成功。


300-399 用於已經移動的文件而且常被包括在定位頭信息中指定新的地址信息(重定向)。
400-499 用於指出client的錯誤(請求錯誤)。
500-599 用於支持server錯誤。

常見的HTTP狀態碼:

200 OK server已成功處理了請求並提供了請求的網頁。一般用於對應GET和POST請求。這個狀態碼對servlet是缺省的;假設沒有調用setStatus方法的話,就會得到200。

304 Not Modified client有緩沖的文檔並發出了一個條件性的請求(通常是提供If-Modified-Since頭表示客戶僅僅想比指定日期更新的文檔)。

server告訴客戶,原來緩沖的文檔還能夠繼續使用。

403 Forbidden 是除非擁有授權否則server拒絕提供所請求的資源。這個狀態常常會因為server上的損壞文件或文件夾許可而引起。

404 Not Found server找不到請求的網頁。server上不存在的網頁常常會返回此代碼。

500 Internal Server Error server遇到了一個未曾預料的狀況,導致了它無法完畢對請求的處理。

一般來說,這個問題都會在server端的源碼出現錯誤時出現。

502 Bad Gateway 作為網關或者代理工作的server嘗試運行請求時,從上遊server接收到無效的響應。

503 Service Unavailable 因為暫時的server維護或者過載,server當前無法處理請求。這個狀況是暫時的。而且將在一段時間以後恢復。假設可以估計延遲時間,那麽響應中可以包括一個 Retry-After 頭用以標明這個延遲時間。

假設沒有給出這個 Retry-After 信息,那麽client應當以處理500響應的方式處理它。

504 Gateway Timeout 作為網關或者代理工作的server嘗試運行請求時,未能及時從上遊server(URI標識出的server,比如HTTP、FTP、LDAP)或者輔助server(比如DNS)收到響應

其他狀態碼


100(繼續) client應當繼續發送請求。

這個暫時響應是用來通知client它的部分請求已經被server接收,且仍未被拒絕。client應當繼續發送請求的剩余部分。或者假設請求已經完畢,忽略這個響應。

server必須在請求完畢後向client發送一個終於響應。

101(切換協議) server已經理解了client的請求,並將通過Upgrade 消息頭通知client採用不同的協議來完畢這個請求。在發送完這個響應最後的空行後,server將會切換到在Upgrade 消息頭中定義的那些協議。

201(已創建) 請求成功而且server創建了新的資源。
202(已接受) server已接受請求,但尚未處理。

203(非授權信息) server已成功處理了請求,但返回的信息可能來自還有一來源。

204(無內容) server成功處理了請求。但沒有返回不論什麽內容。
205(重置內容) server成功處理了請求,但沒有返回不論什麽內容。與 204響應不同,此響應要求請求者重置文檔視圖(比如,清除表單內容以輸入新內容)。

206(部分內容) server成功處理了部分 GET 請求。


300(多種選擇) 針對請求,server可運行多種操作。server可依據請求者 (user agent)選擇一項操作。或提供操作列表供請求者選擇。

301(永久移動) 請求的網頁已永久移動到新位置。server返回此響應(對 GET 或 HEAD請求的響應)時,會自己主動將請求者轉到新位置。
302(暫時移動)

請求的資源暫時從不同的 URI響應請求。由於這種重定向是暫時的。client應當繼續向原有地址發送以後的請求。

僅僅有在Cache-Control或Expires中進行了指定的情況下,這個響應才是可緩存的。假設這不是一個 GET 或者 HEAD 請求,那麽瀏覽器禁止自己主動進行重定向,除非得到用戶的確認。由於請求的條件可能因此發生變化。


303(查看其它位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時。server返回此代碼。對於除 HEAD之外的全部請求。server會自己主動轉到其它位置。
305(使用代理) 請求者僅僅能使用代理訪問請求的網頁。假設server返回此響應。還表示請求者應使用代理。
307(暫時重定向) 請求的資源暫時從不同的URI 響應請求;新的暫時性的URI 應當在響應的 Location 域中返回。除非這是一個HEAD 請求,否則響應的實體中應當包括指向新的URI 的超鏈接及簡短說明。由於部分瀏覽器不能識別307響應,因此須要加入上述必要信息以便用戶可以理解並向新的 URI 發出訪問請求;假設這不是一個GET 或者 HEAD 請求,那麽瀏覽器禁止自己主動進行重定向,除非得到用戶的確認,由於請求的條件可能因此發生變化。


400(錯誤請求) server不理解請求的語法。

401(未授權) 請求要求身份驗證。

對於登錄後請求的網頁,server可能返回此響應。

405(方法禁用) 禁用請求中指定的方法。
406(不接受) 無法使用請求的內容特性響應請求的網頁。

407(須要代理授權) 與401響應類似。僅僅只是client必須在代理server上進行身份驗證。代理server必須返回一個 Proxy-Authenticate 用以進行身份詢問。client能夠返回一個 Proxy-Authorization 信息頭用以驗證。

408(請求超時) server等候請求時發生超時。

409(沖突) server在完畢請求時發生沖突。server必須在響應中包括有關沖突的信息。server在響應與前一個請求相沖突的 PUT請求時可能會返回此代碼,以及兩個請求的差異列表。
410(已刪除) 假設請求的資源已永久刪除,server就會返回此響應。該代碼與404(未找到)代碼類似,但在資源曾經存在而如今不存在的情況下,有時會用來替代 404 代碼。假設資源已永久移動,您應使用 301指定資源的新位置。
411(須要有效長度) server不接受不含有效內容長度標頭字段的請求。
412(未滿足前提條件) server未滿足請求者在請求中設置的當中一個前提條件。
413(請求實體過大) server無法處理請求,由於請求實體過大。超出server的處理能力。
414(請求的 URI 過長) 請求的 URI(通常為網址)過長。server無法處理。
415(不支持的媒體類型) 請求的格式不受請求頁面的支持。

416(請求範圍不符合要求) 假設頁面無法提供請求的範圍,則server會返回此狀態碼。

417(未滿足期望值) server未滿足”期望”請求標頭字段的要求。


501(尚未實施) server不具備完畢請求的功能。

比如,server無法識別請求方法時可能會返回此代碼。

505(HTTP 版本號不受支持) server不支持請求中所用的 HTTP 協議版本號。




HTTP狀態碼具體解釋