轉 http://www.fboss.com/article.asp?id=816
近來總有朋友咨詢cPanel 的Awstats中“HTTP錯誤碼(HTTP Error codes)”的含義,以及是否需要關注和處理。
關于Awstats請查看《CP How-To:如何使用cPanel查看站點統計數據(awstats)》 文章地址:
http://bbs.netpu.net/viewthread.php tid=694 其實這是一個誤會,在這里它應該是“HTTP狀態碼(HTTP Status codes)”。
OK,既然是狀態碼,那么就可能有正確和錯誤兩種狀態了(至少不全是錯誤了,大大的松口氣吧)。那么這些代碼都代表什么含義呢?到底哪些是錯誤狀態,哪些是正確狀態呢?不要急,下邊我冒充內行為大家做一個簡單的介紹。
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