HTTP狀態碼(HTTP Status codes)簡介

轉載自http://www.cnblogs.com/liunx/archive/2010/04/27/1721791.html


HTTP與Status codes


HTTP可能大家都熟悉,就是超文本傳輸協議。瀏覽器通過HTTP與WEB Server通訊(也有一些其它軟件比如IM使用HTTP協議傳遞數據),把我們的請求(HTTP Request)傳遞給服務器,服務器響應這個請求,返回應答(HTTP Response)以及我們需要的數據。大致就是這個樣子了。

如果我們請求啥,服務器就返回啥,是乎就不需要HTTP Status codes了。但是事情往往不是那麼簡單。比如我們請求一個網頁頁面,可是服務器不存在這個頁面,或者這個頁面被轉移到其它地方,或者服務器禁止我們查看 這個頁面等等,所以爲了便於瀏覽器處理這些正確與不正確的情況,HTTP用Status codes來表示請求(HTTP Request)在服務器端被處理的情況。Status codes通過應答(HTTP Response)返回給瀏覽器,瀏覽器根據這個作相應的處理。

HTTP Status codes的分類

既然有正確和錯誤的狀態,HTTP定義兩大類狀態碼是不是就可以了?人家制訂協議的可是專家(不象我是冒充的),想得比我們要周全,要長遠。HTTP 1.1中定義了5大類Status codes,分別是:

Informational
意義:信息
範圍:1XX

Successful
意義:成功
範圍:2XX

Redirection
意義:重定向
範圍:3XX

Client Error
意義:客戶端錯誤
範圍:4XX

Server Error
意義:服務器錯誤
範圍:5XX

您看看人家想得多周到啊,真專家就是真專家。

常見HTTP Status codes簡介

下面簡單介紹一下我們經常碰到的HTTP Status codes。

也許是我孤陋寡聞,常遇到的HTTP Status codes就那麼幾個,見笑啦。

Successful
200 - OK:OK
這個是最常見的啦(也許我們不會直接看到,但是如果您使用一些抓包工具,大多數http應答中都有這個)。意義很簡單,就是說服務器收到並理解客戶端的請求而且正常處理了。
206 - Partial Content:部分內容。
這個也經常發生。很容易讓大家發懵。
通俗點說就是如果客戶端請求文檔(圖像,文本,聲音等等)的部分內容,服務器正常處理,那麼就返回206。大致意思就是它請求的時候,除了指定請求的內容,還指定了偏移量以及長度。
部分內容,沒搞錯吧?呵呵沒搞錯,現在很多瀏覽器以及軟件支持斷點續傳就是靠這個的。呵呵,以後看到206不要怕了。

Redirection
301 - Moved Permanently:永久移動。
這個狀態碼是指客戶端要請求的資源已經被永久的轉移到一個新的地方了。這個應答(HTTP Response)裏邊同時包含了資源的新地址。它告訴客戶端,如果下次還想要這個資源,那麼就用新的地址去取。
302 Found:臨時重定向。
這個狀態碼是指客戶端要請求的資源臨時放到一個新地方了。同樣,應答中也包含了資源的新地址。
307 - Temporary Redirect:臨時重定向。(如果不去實現協議或者做相關開發,我們大致理解它很302差不多就可以啦)
有一篇談重定向的文章《從Business.com遭封看302重定向》很有意思
我們轉載了一份,地址:http://bbs.netpu.net/viewthread.php?tid=810

Client Error
400 - Bad Request:錯誤請求
就是請求的語法錯誤,服務器無法理解。
401 – Unauthorized:未授權
當服務器返回401 Code,就是告訴說客戶端訪問指定資源以前,必須通過服務器的授權。
403 – Forbidden:禁止訪問
就是不允許訪問某些資源。
404 - Not Found:找不到
找不到客戶端請求的內容

Server Error
500 - Internal Server Error
服務器內部錯誤。

官方的資料地址:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章