狀態(tài)碼的職責是當客戶端向服務器端發(fā)送請求時呼奢,描述返回的請求結果。
借助狀態(tài)碼戴已,我們可以知道服務器端是正常處理了請求,還是出現(xiàn)了問題锅减。
我們先來看一個圖:
1XX
Informational信息性狀態(tài)碼
原因短語:接收的請求正在處理
由于 HTTP/1.0 協(xié)議中沒有定義任何 1xx 狀態(tài)碼糖儡,所以除非在某些試驗條件下,服務器禁止向此類客戶端發(fā)送 1xx 響應上煤。
2XX 成功
Success成功狀態(tài)碼
2XX的響應結果表明請求被正常處理了休玩。
- 200 OK
表示從客戶端發(fā)來的請求在服務器端被正常處理了。 - 204 No Content
該狀態(tài)碼表示服務器接收的請求已成功處理劫狠,但是返回的響應報文中不含實體的主體部分拴疤。
一般在只需要從客戶端往服務器發(fā)送信息,而對客戶端不需要發(fā)送新信息內容的情況下使用独泞。 - 206 Partial Content
表示客戶端進行了范圍請求呐矾。而服務器端成功執(zhí)行了這部分的請求。響應報文中包含由Content-Range指定范圍的實體內容懦砂。
3XX重定向
301 Move Permanently
永久重定向
表示蜒犯,請求的資源已被分配到新的URI,以后應使用資源現(xiàn)在所指的URI荞膘。
注意:對于某些使用 HTTP/1.0 協(xié)議的瀏覽器罚随,當它們發(fā)送的 POST 請求得到了一個301響應的話,接下來的重定向請求將會變成 GET 方式羽资。302 Found
臨時重定向
表示淘菩,請求的資源已被分配到新的URI,希望用戶本次使用新的URI303 See Other
該狀態(tài)碼表示由于請求對應的資源存在著另一個URI屠升,應使用GET方法定向獲取請求的資源潮改。(明確GET方法,其他與302相同)304 Not Modified
表示請求成功腹暖,但是內容沒有改變汇在。服務器資源未改變,可直接使用客戶端未過期的緩存脏答。
304狀態(tài)碼返回時糕殉,不包含任何響應的主體部分。
特別需要注意的一點是以蕴,雖然304狀態(tài)碼被劃分在重定向3XX類別中糙麦,但是其跟重定向并沒有什么關系。
搜索引擎會根據304狀態(tài)碼來判斷頁面是否產生變化丛肮,來決定是否需要抓取。如果頁面有太多的304魄缚,并不利于SEO宝与。307 Temporary Redirect
臨時重定向焚廊。該狀態(tài)碼有著和302Found相同的含義。
4XX客戶端錯誤
400 Bad Request
表示請求報文中存在語法錯誤习劫。需要修改請求內容再重新發(fā)送咆瘟。401 Unauthorized
表示發(fā)送的請求需要通過HTTP認證的認證信息。另外诽里,若之前已經進行過一次請求袒餐,則表示用戶認證失敗。403 Forbidden
表示請求資源的訪問被服務器拒絕谤狡。未獲得文件系統(tǒng)的訪問授權灸眼,訪問權限出現(xiàn)問題等列舉的情況都可能產生403404 Not Found
該狀態(tài)碼表示服務器上無法找到請求的資源。此外墓懂,也可以在服務器端拒絕請求且不想說明理由時使用焰宣。
5XX 服務器錯誤
500 Internal Server Error
表示服務器端在執(zhí)行請求時發(fā)生了錯誤。503 Service Unavailable
表示服務器暫時處于超負荷或者正在進行停機維護捕仔,現(xiàn)在無法處理請求匕积。
如果提前知道這個情況,最好寫入Retry-After首部字段返回給客戶端榜跌。
需要注意的是:狀態(tài)碼和真實狀況不一致的情況闪唆,時有發(fā)生!
本文整理自《圖解HTTP》和網絡钓葫,之后將持續(xù)進行完善