http常見響應狀態碼及解釋,常用請求頭及解釋


一、所有http請求返回狀態碼意義

1、HTTP常見響應狀態碼及解釋

100 Continue 繼續。客戶端應繼續其請求
101 Switching Protocols 切換協議。服務器根據客戶端的請求切換協議。只能切換到更高級的協議,例如,切換到HTTP的新版本協議
200 OK 請求成功。一般用於GET與POST請求
201 Created 已創建。成功請求並創建了新的資源
202 Accepted 已接受。已經接受請求,但未處理完成
203 Non-Authoritative Information 非授權信息。請求成功。但返回的meta信息不在原始的服務器,而是一個副本
204 No Content 無內容。服務器成功處理,但未返回內容。在未更新網頁的情況下,可確保瀏覽器繼續顯示當前文檔
205 Reset Content 重置內容。服務器處理成功,用戶終端(例如:瀏覽器)應重置文檔視圖。可通過此返回碼清除瀏覽器的表單域
206 Partial Content 部分內容。服務器成功處理了部分GET請求
300 Multiple Choices 多種選擇。請求的資源可包括多個位置,相應可返回一個資源特征與地址的列表用於用戶終端(例如:瀏覽器)選擇
301 Moved Permanently 永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI。今后任何新的請求都應使用新的URI代替
302 Found 臨時移動。與301類似。但資源只是臨時被移動。客戶端應繼續使用原有URI
303 See Other 查看其它地址。與301類似。使用GET和POST請求查看
304 Not Modified 未修改。所請求的資源未修改,服務器返回此狀態碼時,不會返回任何資源。客戶端通常會緩存訪問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源
305 Use Proxy 使用代理。所請求的資源必須通過代理訪問
306 Unused 已經被廢棄的HTTP狀態碼
307 Temporary Redirect 臨時重定向。與302類似。使用GET請求重定向
400 Bad Request 客戶端請求的語法錯誤,服務器無法理解
401 Unauthorized 請求要求用戶的身份認證
402 Payment Required 保留,將來使用
403 Forbidden 服務器理解請求客戶端的請求,但是拒絕執行此請求
404 Not Found 服務器無法根據客戶端的請求找到資源(網頁)。通過此代碼,網站設計人員可設置"您所請求的資源無法找到"的個性頁面
405 Method Not Allowed 客戶端請求中的方法被禁止
406 Not Acceptable 服務器無法根據客戶端請求的內容特性完成請求
407 Proxy Authentication Required 請求要求代理的身份認證,與401類似,但請求者應當使用代理進行授權
408 Request Time-out 服務器等待客戶端發送的請求時間過長,超時
409 Conflict 服務器完成客戶端的PUT請求是可能返回此代碼,服務器處理請求時發生了沖突
410 Gone 客戶端請求的資源已經不存在。410不同於404,如果資源以前有現在被永久刪除了可使用410代碼,網站設計人員可通過301代碼指定資源的新位置
411 Length Required 服務器無法處理客戶端發送的不帶Content-Length的請求信息
412 Precondition Failed 客戶端請求信息的先決條件錯誤
413 Request Entity Too Large 由於請求的實體過大,服務器無法處理,因此拒絕請求。為防止客戶端的連續請求,服務器可能會關閉連接。如果只是服務器暫時無法處理,則會包含一個Retry-After的響應信息
414 Request-URI Too Large 請求的URI過長(URI通常為網址),服務器無法處理
415 Unsupported Media Type 服務器無法處理請求附帶的媒體格式
416 Requested range not satisfiable 客戶端請求的范圍無效
417 Expectation Failed 服務器無法滿足Expect的請求頭信息
500 Internal Server Error 服務器內部錯誤,無法完成請求
501 Not Implemented 服務器不支持請求的功能,無法完成請求
502 Bad Gateway 作為網關或者代理工作的服務器嘗試執行請求時,從遠程服務器接收到了一個無效的響應
503 Service Unavailable 由於超載或系統維護,服務器暫時的無法處理客戶端的請求。延時的長度可包含在服務器的Retry-After頭信息中
504 Gateway Time-out 充當網關或代理的服務器,未及時從遠端服務器獲取請求
505 HTTP Version not supported

2、常用請求頭及解釋:

accept:瀏覽器通過這個頭告訴服務器,它所支持的數據類型
Accept-Charset: 瀏覽器通過這個頭告訴服務器,它支持哪種字符集
Accept-Encoding:瀏覽器通過這個頭告訴服務器,支持的壓縮格式
Accept-Language:瀏覽器通過這個頭告訴服務器,它的語言環境
Host:瀏覽器通過這個頭告訴服務器,想訪問哪台主機
If-Modified-Since: 瀏覽器通過這個頭告訴服務器,緩存數據的時間
Referer:瀏覽器通過這個頭告訴服務器,客戶機是哪個頁面來的 防盜鏈
Connection:瀏覽器通過這個頭告訴服務器,請求完后是斷開鏈接還是保持鏈接

二、部分返回狀態碼詳解

1、2XX成功
  1). 200 OK
表示從客戶端發來的請求在服務器被正常處理了。

2). 204 no content
表示從客戶端發來的請求在服務器被正常處理了,但在返回的響應報文中不含實體的主體部分。

3). 206 partial content
表示客戶端進行了范圍請求,而服務器成功執行了這部分的GET請求。
2、3XX重定向

1). 301 moved permanently
永久性重定向。 該狀態碼表示請求的資源已被分配了新的URI,以后應使用資源現在所指的URI。也就是說,如果已經把資源對應的URI保存為書簽了,這時應按Location首部字段提示的URI重新保存。
如下方給出的請求URI,當指定資源路徑的最后忘記添加斜杠“/”,就會產生301狀態碼
    http://example.com/sample

2). 302 found
臨時性重定向。 該狀態碼表示請求的資源已被分配了新的URI,希望用戶(本次)能使用新的URI訪問。
    與301的區別:302代表的資源不是被永久移動,只是臨時性質的,已移動的資源對應的URI將來還有可能發生改變。
    如用戶把URI保存成書簽,但不會像301出現時那樣去更新書簽,而是仍舊保留返回302的頁面對應的URI。

3). 303 see other
表示由於請求對應的資源存在着另一個URI,應使用GET方法定向獲取請求的資源。
    與302的區別:303明確表示客戶端應采用GET方法獲取資源
    當301、302、303響應狀態碼返回時,幾乎所有的瀏覽器都會把POST改為GET,並刪除請求報文內的主體,之后請求會自動再次發送。
    301、302標准是禁止將POST改為GET的,但實際使用時大家都會這么做。

4). 304 not modified
該狀態碼表示客戶端發送附帶條件的請求時,服務器端資源已找到,但未符合條件請求。304返回時,不包含任何響應的主體部分。
    304雖然被划分在3XX類別中,但是和重定向沒有關系。

5). 307 temporary rediect
臨時重定向。 該狀態碼與302有着相同的含義,但307會遵照瀏覽器標准,不會從POST變成GET。對於處理響應時的行為,每種瀏覽器有可能出現不同的情況。

3、4XX客戶端錯誤
1). 400 bad request
該狀態碼表示請求報文中存在語法錯誤。當錯誤發生時,需修改請求的內容后再次發送請求。

2). 401 unauthorized
該狀態碼表示發送的請求需要有通過HTTP認證(BASIC認證、DIGEST認證)的認證信息。另外,若之前已進行過1次請求,則表示用戶認證失敗。
返回含有401的響應必須包含一個適用於被請求資源的WWWAuthenticate首部用以質詢(challenge)用戶信息。當瀏覽器初次接收到401響應,會彈出認證用的對話窗口。

3). 403 forbidden
該狀態碼表明對請求資源的訪問被服務器拒絕了。
    服務器端沒有必要給出拒絕的詳細理由,但如果想作說明,可在實體的主體部分對原因進行描述,這樣就能讓用戶看到了。
    未獲得文件系統的訪問授權,訪問權限出現某些問題(從未授權的發送源IP地址試圖訪問)等列舉的情況都可能是發生了403的原因

4). 404 not found
該狀態碼表明服務器上無法找到請求的資源。除此之外,也可以在服務器端拒絕請求且不想說明理由時使用。

 

4、5XX 服務器錯誤
1). 500 internal server error
該狀態碼表明服務器端在執行請求時發生了錯誤。也有可能是Web應用存在的bug或某些臨時的故障。

2). 503 service unavailable
該狀態碼表明服務器暫時處於超負載或正在進行停機維護,現在無法處理請求。如果事先得知解除以上狀況需要的時間,最好寫入RetryAfter首部字段再返回給客戶端。
狀態碼和狀況的不一致
    不少返回的狀態碼響應都是錯誤的,但是用戶可能擦覺不到這點。如Web應用程序內部發生錯誤,狀態碼依然返回200 OK,測試的時候就需要注意了。

3). 504 gateway timeout
網關超時,由作為代理或網關的服務器使用,表示不能及時地從遠程服務器獲得應答。


總結
返回的狀態碼和狀態不一致的情況 是 有可能發生得
    比如Web應用程序內部錯誤,但仍然返回 200 OK
    200 OK
    請求正常處理完畢
    204 No Content
    請求成功處理,沒有實體的主體返回
    206 Partial Content
    GET范圍請求已成功處理
    301 Moved Permanently
    永久重定向,資源已永久分配新URI
    302 Found
    臨時重定向,資源已臨時分配新URI
    303 See Other
    臨時重定向,期望使用GET定向獲取
    304 Not Modified
    發送的附帶條件請求未滿足
    307 Temporary Redirect
    臨時重定向,POST不會變成GET
    400 Bad Request
    請求報文語法錯誤或參數錯誤
    401 Unauthorized
    需要通過HTTP認證,或認證失敗
    403 Forbidden
    請求資源被拒絕
    404 Not Found
    無法找到請求資源(服務器無理由拒絕)
    500 Internal Server Error
    服務器故障或Web應用故障
    503 Service Unavailable
    服務器超負載或停機維護


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM