HTTP狀態碼的英文為 HTTP Status Code,下面是常見的HTTP狀態碼:
- 200 - 請求成功
- 301 - 資源(網頁等)被永久轉移到其它URL
- 404 - 請求的資源(網頁等)不存在
- 500 - 內部服務器錯誤
1、HTTP狀態碼的分類
HTTP狀態碼由三個十進制數字組成,第一個十進制數字定義了狀態碼的型別,后兩個數字沒有分類的作用,HTTP狀態碼共分為5種型別:
| 分類 | 分類描述 |
|---|---|
| 1** | 資訊,服務器收到請求,需要請求者繼續執行操作 |
| 2** | 成功,操作被成功接收并處理 |
| 3** | 重定向,需要進一步的操作以完成請求 |
| 4** | 客戶端錯誤,請求包含語法錯誤或無法完成請求 |
| 5** | 服務器錯誤,服務器在處理請求的程序中發生了錯誤 |
詳細的描述狀態碼之(1**)
100: 客戶端應當繼續發送請求,這個臨時回應是用來通知客戶端它的部分請求已經被服務器接收,且仍未被拒絕,客戶端應當繼續發送請求的剩余部分,或者如果請求已經完成,忽略這個回應,服務器必須在請求完成后向客戶端發送一個最終回應,101: 服務器已經理解了客戶端的請求,并將通過Upgrade 訊息頭通知客戶端采用不同的協議來完成這個請求,在發送完這個回應最后的空行后,服務器將會切換到在Upgrade 訊息頭中定義的那些協議,只有在切換新的協議更有好處的時候才應該采取類似措施,例如,切換到新的HTTP版本比舊版本更有優勢,或者切換到一個實時且同步的協議以傳送利用此類特性的資源,102: 由WebDAV(RFC 2518)擴展的狀態碼,代表處理將被繼續執行,
詳細的描述狀態碼之(2**)
200: 請求已成功,請求所希望的回應頭或資料體將隨此回應回傳,201: 請求已經被實作,而且有一個新的資源已經依據請求的需要而建立,且其URI已經隨Location頭資訊回傳,假如需要的資源無法及時建立的話,應當回傳'202 Accepted',202: 服務器已接受請求,但尚未處理,正如它可能被拒絕一樣,最終該請求可能會也可能不會被執行,在異步操作的場合下,沒有比發送這個狀態碼更方便的做法了,回傳202狀態碼的回應的目的是允許服務器接受其他程序的請求(例如某個每天只執行一次的基于批處理的操作),而不必讓客戶端一直保持與服務器的連接直到批處理操作全部完成,在接受請求處理并回傳202狀態碼的回應應當在回傳的物體中包含一些指示處理當前狀態的資訊,以及指向處理狀態監視器或狀態預測的指標,以便用戶能夠估計操作是否已經完成,203: 服務器已成功處理了請求,但回傳的物體頭部元資訊不是在原始服務器上有效的確定集合,而是來自本地或者第三方的拷貝,當前的資訊可能是原始版本的子集或者超集,204: 服務器成功處理了請求,但不需要回傳任何物體內容,并且希望回傳更新了的元資訊,回應可能通過物體頭部的形式,回傳新的或更新后的元資訊,如果存在這些頭部資訊,則應當與所請求的變數相呼應,如果客戶端是瀏覽器的話,那么用戶瀏覽器應保留發送了該請求的頁面,而不產生任何檔案視圖上的變化,即使按照規范新的或更新后的元資訊應當被應用到用戶瀏覽器活動視圖中的檔案,由于204回應被禁止包含任何訊息體,因此它始終以訊息頭后的第一個空行結尾,205: 服務器成功處理了請求,且沒有回傳任何內容,但是與204回應不同,回傳此狀態碼的回應要求請求者重置檔案視圖,該回應主要是被用于接受用戶輸入后,立即重置表單,以便用戶能夠輕松地開始另一次輸入,206: 服務器已經成功處理了部分 GET 請求,類似于FlashGet或者迅雷這類的HTTP下載工具都是使用此類回應實作斷點續傳或者將一個大檔案分解為多個下載段同時下載,該請求必須包含Range頭資訊來指示客戶端希望得到的內容范圍,并且可能包含If-Range來作為請求條件,回應必須包含如下的頭部域:Content-Range用以指示本次回應中回傳的內容的范圍;如果是Content-Type為multipart/byteranges的多段下載,則每一multipart段中都應包含Content-Range域用以指示本段的內容范圍,假如回應中包含Content-Length,那么它的數值必須匹配它回傳的內容范圍的真實位元組數,Date ETag 和/或Content-Location,假如同樣的請求本應該回傳200回應,Expires, Cache-Control,和/或 Vary,假如其值可能與之前相同變數的其他回應對應的值不同的話,假如本回應請求使用了If-Range強快取驗證,那么本次回應不應該包含其他物體頭;假如本回應的請求使用了If-Range弱快取驗證,那么本次回應禁止包含其他物體頭;這避免了快取的物體內容和更新了的物體頭資訊之間的不一致,否則,本回應就應當包含所有本應該回傳200回應中應當回傳的所有物體頭部域,假如ETag或Last-Modified頭部不能精確匹配的話,則客戶端快取應禁止將206回應回傳的內容與之前任何快取過的內容組合在一起,任何不支持Range以及Content-Range頭的快取都禁止快取206回應回傳的內容,207: 由WebDAV(RFC 2518)擴展的狀態碼,代表之后的訊息體將是一個XML訊息,并且可能依照之前子請求數量的不同,包含一系列獨立的回應代碼,
今天的分享就到這里,明天繼續分享剩下的狀態碼,文字太多,讓各位觀眾老爺的眼睛受累了,
- HTTP狀態碼詳解(下)
作者:曲小強
鏈接:https://juejin.im/post/5db7b2986fb9a02027084ff4
來源:掘金
著作權歸作者所有,商業轉載請聯系作者獲得授權,非商業轉載請注明出處,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/158913.html
標籤:JavaScript
上一篇:來自程式員的浪漫
