如下是《圖解HTTP》對狀態(tài)碼的描述
狀態(tài)碼告知從服務器端返回的請求結果嗜闻,狀態(tài)碼的職責是當客戶端向服務端發(fā)送請求時障癌,描述返回的請求結果。借助狀態(tài)碼佑女,用戶可以知道服務器端是正常處理了請求卵惦,還是出現(xiàn)了錯誤阻肿。
狀態(tài)碼如 200 OK,以三位數(shù)字和原因短語組成沮尿。數(shù)字中的第一位指定了響應的類別丛塌,后兩位無分類。響應類別有5種畜疾。如下表格所示
狀態(tài)碼 | 類別 | 原因短語 |
---|---|---|
1XX | informational(信息性狀態(tài)碼) | 接收的請求正在處理 |
2XX | success(成功狀態(tài)碼) | 請求正常處理完畢 |
3XX | redirection(重定向狀態(tài)碼) | 需要進行附加操作以完成請求 |
4XX | client error(客戶端錯誤狀態(tài)碼) | 服務器無法處理請求 |
5XX | server error(服務器錯誤狀態(tài)碼) | 服務器處理請求出錯 |
狀態(tài)碼 2XX
2XX 的響應結果表明請求正常被處理了赴邻。
200 OK
表示從客戶端發(fā)來的請求在服務器端正常處理了。
在響應報文內(nèi)啡捶,隨狀態(tài)碼一起返回的信息會因方法的不同而發(fā)生改變姥敛。比如,使用GET 方法是瞎暑,對應請求資源的實體會作為響應返回彤敛;而使用HEAD方法是,對應請求資源的實體主體不隨報文首部作為響應返回(也就是只返回響應首部了赌,不會返回實體主體部分)
204 Not Content
該狀態(tài)碼表示客戶端發(fā)出的請求被服務端成功處理墨榄,但是返回的響應報文中不含實體主體部分。也不允許返回任何實體的主體勿她。比如瀏覽器發(fā)出請求袄秩,服務端返回響應碼為 204 ,則瀏覽器不發(fā)生任何更新嫂拴。一般只需要客戶端向服務端發(fā)送信息播揪,客戶端不需要接收新的信息的情況下使用
206 Parity Content
該狀態(tài)碼表示客戶端進行了范圍請求,而服務端也成功執(zhí)行了這個部分的GET請求筒狠。響應報文包中含由Content-Range 指定范圍的實體內(nèi)容。
3XX 重定向
3XX表示瀏覽器需要執(zhí)行某個特殊的處理以正確處理請求箱沦。
301 Moved Permanently
該狀態(tài)碼表示永久重定向辩恼。請求的資源已經(jīng)被分配新的URI,以后應使用資源現(xiàn)在所指的URI。如果已經(jīng)吧資源對應的URI保存為了書簽灶伊,這是需要按location首部字段提示的URI重新保存疆前。
像下方給出的請求URI,當指定資源路徑的最后忘記添加斜杠“/”,就會產(chǎn)生301狀態(tài)碼聘萨。
302 Found
該狀態(tài)碼表示臨時重定向竹椒。請求資源被分配了新的URI,希望客戶端(本次)能使用新的URI進行請求米辐。
和301 Moved Permanently 狀態(tài)碼相似胸完,但是302狀態(tài)碼代表資源不是永久移動,只是臨時移動而已翘贮。也就是說赊窥,被移動的URI將來還有可能發(fā)送變化。如果用戶把URI保存成書簽狸页,但是不會像像301狀態(tài)碼那樣出現(xiàn)提示去更新書簽锨能,而是仍舊保留返回 302 狀態(tài)碼的頁面對應的 URI。
303 See Other
該狀態(tài)碼表示資源存在另一個URI芍耘,應使用GET方法定向獲取請求資源址遇。
303 狀態(tài)碼和302狀態(tài)碼有著相同的功能,但303狀態(tài)碼明確表示客戶端應當采用GET方法獲取請求資源斋竞,這點與302狀態(tài)碼有區(qū)別傲隶。
304 Not Modified
該狀態(tài)碼表示客戶端發(fā)送附帶條件的請求時,服務端允許請求訪問資源窃页,但因發(fā)生請求未滿足條件的情況后跺株,直接返回304 Not Modified(服務端資源為改變,可以直接使用客戶端為過期的緩存資源)脖卖,304狀態(tài)碼返回時乒省,不包含任何響應主體部分。
附帶條件請求是指采用GET方法請求報文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since 中任一首部畦木。
307 Temporary Redirect
臨時重定向袖扛。該狀態(tài)碼與302 Found 有著相同的含義。盡管302標準禁止POST變換成GET十籍,但實際上大家都不遵守蛆封。
307 會遵守瀏覽器標準,不會從POST變成GET勾栗。但是惨篱,對于處理響應時的行為,每種瀏覽器有可能出現(xiàn)不同的情況
4XX 客戶端錯誤
4XX 的響應結果表明客戶端是發(fā)生錯誤的原因所在
400 Bad Request
該狀態(tài)碼表示請求報文中存在語法錯誤围俘。當錯誤發(fā)生時砸讳,需要修改請求的內(nèi)容再次發(fā)送請求琢融。另外,瀏覽器會像200 OK 一樣對待該狀態(tài)碼
401 Unauthorized
該狀態(tài)碼表示發(fā)送的請求需要通過HTTP認證(BASIC 認證簿寂、DIGEST 認證)的認證信息漾抬。另外若之前已經(jīng)進行過一次請求,則表示用戶認證失敗常遂。
返回含有401的響應必須包含一個適用于被請求資源的WWW-Authenticate 首部用以質(zhì)詢用戶信息纳令。當瀏覽器初次接收到401響應,會彈出認證用的對話窗口克胳。
403 Forbidden
該狀態(tài)碼表明對請求資源的訪問被服務器拒絕了平绩。服務器端沒有必要給出拒絕的詳細理由,但是如果像作說明的化毯欣,可以在實體的主體部分對原因進行描述馒过,這樣就能讓用戶看到了。
404 Not Found
該狀態(tài)碼表明服務器上無法找到請求的資源酗钞。除此之外腹忽,也可以在服務器端拒絕請求且不想說明理由時使用。
5XX 服務器錯誤
5XX的響應結果表明服務器本身錯誤砚作。
500 Internal Server Error
該狀態(tài)碼表明服務器端在執(zhí)行請求是發(fā)生了錯誤窘奏。也有可能是 Web應用存在的bug或者某些臨時的故障。
503 Service Unavailable
該狀態(tài)碼表明服務器暫時處于超負荷狀態(tài)或者正在進行停機維護葫录,現(xiàn)在無法處理請求着裹。