Linux企業級專案實踐之網路爬蟲(10)——處理HTTP狀態碼

尹成發表於2014-08-31
HTTP狀態碼(HTTP Status Code)是用以表示網頁伺服器HTTP響應狀態的3位數字程式碼。所有狀態碼的第一個數字代表了響應的五種狀態之一。
他們分別是:
訊息(1字頭)
成功(2字頭)
這一型別的狀態碼,代表請求已成功被伺服器接收、理解、並接受。

重定向(3字頭)
這類狀態碼代表需要客戶端採取進一步的操作才能完成請求。通常,這些狀態碼用來重定向,後續的請求地址(重定向目標)在本次響應的 Location 域中指明。

請求錯誤(4字頭)
這類的狀態碼代表了客戶端看起來可能發生了錯誤,妨礙了伺服器的處理。除非響應的是一個 HEAD 請求,否則伺服器就應該返回一個解釋當前錯誤狀況的實體,以及這是臨時的還是永久性的狀況。這些狀態碼適用於任何請求方法。瀏覽器應當向使用者顯示任何包含在此類錯誤響應中的實體內容。
如果錯誤發生時客戶端正在傳送資料,那麼使用TCP的伺服器實現應當仔細確保在關閉客戶端與伺服器之間的連線之前,客戶端已經收到了包含錯誤資訊的資料包。如果客戶端在收到錯誤資訊後繼續向伺服器傳送資料,伺服器的TCP棧將向客戶端傳送一個重置資料包,以清除該客戶端所有還未識別的輸入緩衝,以免這些資料被伺服器上的應用程式讀取並干擾後者。

伺服器錯誤(5字頭)
這類狀態碼代表了伺服器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是伺服器意識到以當前的軟硬體資源無法完成對請求的處理。除非這是一個HEAD 請求,否則伺服器應當包含一個解釋當前錯誤狀態以及這個狀況是臨時的還是永久的解釋資訊實體。瀏覽器應當向使用者展示任何在當前響應中被包含的實體。


最常見的狀態碼是200 OK、202 Accepted、300 Multiple Choices、404 Not Found、500 Internal Server Error等。

其它有興趣可以查閱RFC文件。

相關文章