HTTP協議(8)HTTP響應報文和狀態碼

對於HTTP響應報文,比較重要的信息主要有兩部分,一部分是響應行中的狀態碼,另一部分是響應頭。下面分別介紹。
響應頭信息中比較重要的部分:

(1) Server,服務端所使用的Web服務名稱,如:Server:Apache/1.3.6(Unix)。
(2) Set-Cookie:服務器向客戶端設置的Cookie。
(3) Last-Modified,服務器通過這個域告訴客戶端瀏覽器,資源的最後修改時間。
(4) Location:重定向用戶到另一個頁面,比如身份認證通過之後就會轉向另一個頁面。這個域通常配合302狀態碼使用。
(5) Content-Length:body部分的長度(單位字節)。

狀態碼都是由三位數字組成,主要分爲5個大類:

   1xx:100-101,指示信息,表示請求已經接收,會繼續處理。這種狀態碼很少見到。
   2xx:200-206,客戶端請求被服務器成功接收並處理後返回的響應;
   3xx:300-305,重定向,通常都是在身份認證成功後重定向到一個安全頁面;
   4xx:400-415,客戶端請求錯誤;
   5xx:500-505,服務器端錯誤。

狀態碼共有50多個,其中比較常見的有:

常見狀態代碼  狀態描述        說明
  200       OK              客戶端請求成功
  302       Found       重定向,跳轉的地址通過location指定。
  304       Not Modified    服務端資源未更新。   
  401       Unauthorized    請求未經授權,需要進行身份驗證。
  403       Forbidden   服務器收到請求,但是拒絕提供服務
  404       Not Found   請求資源不存在,例如輸入了錯誤的URL
  500       Internal Server Error 服務器發生不可預期的錯誤
  503       Server Unavailable      服務器當前不能處理客戶端的請求

大多數的網站掃描工具其基本工作原理都是基於狀態碼來進行判斷。下面我們結合Burpsuite來進一步瞭解狀態碼。
我們首先訪問服務器中的一個正常頁面test1.php,此時的狀態碼爲200。
HTTP協議(8)HTTP響應報文和狀態碼

然後再訪問一個不存在的頁面test10.php,此時狀態碼爲404:
HTTP協議(8)HTTP響應報文和狀態碼

我們再去訪問一個網站中並不存在的目錄admin(注意,目錄名字後面要加/),狀態碼依然是404:
HTTP協議(8)HTTP響應報文和狀態碼
我們創建出目錄admin,此時顯示狀態碼爲200。如果執行chmod 700 admin命令,將目錄權限設置爲700,那麼再次訪問目錄,狀態碼爲403。
HTTP協議(8)HTTP響應報文和狀態碼
再比如我們在Web服務器中安裝上DVWA,訪問登錄頁面,正確輸入用戶名和密碼,攔截請求之後,發送出去,此時返回的狀態碼爲302,並通過location指定了要跳轉到的頁面。
HTTP協議(8)HTTP響應報文和狀態碼
如果重複訪問某個靜態頁面,則會收到狀態碼304。表示服務器端資源未更新。
HTTP協議(8)HTTP響應報文和狀態碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章