1. 程式人生 > >協議分析之HTTP

協議分析之HTTP

wireshark 協議分析工作 http

一、小試牛刀**
http協議是互聯網上應用最為廣泛的一種網絡協議,它工作在應用層,由請求和響應構成,是一個標準的客戶端服務器模型,http是無狀態的協議。我們接下來要做的,是通過網絡嗅探工具來捕獲網絡中傳輸的http包,從分析數據包的角度來學習http協議。

二、拉開帷幕

1、獲取wireshark
https://www.wireshark.org/
2、篩選HTTP流量

1、基於名稱的寫法
            #篩選指定域名
            http.hsot == "www.51cto.com"
            #篩選指定字符串
            http.host contains"51cto"
            #篩選指定referer頭部
            http.referer == "http://www.51cto.com"
2、基於請求方法
            #GET
            http.request.method == GET
            #篩選所有http請求
            http.request
            #篩選所有http響應
            http.response
            #篩選指定url的http請求
            http.request.uri == "im.taobao.com"
3、基於HTTP狀態碼
            #篩選客戶端錯誤包
            http.response.code >= 400 and http.response.code <= 499
            #篩選服務器端錯誤包
            http.response.code >= 500 and http.response.code <= 599

3、初步觀察
到這一步,我們已經通過wireshark捕獲到瀏覽器或客戶端訪問服務器端的數據包,並篩選出具體的HTTP包,接下來,我們來看看HTTP協議在數據包中體現的交互過程。
1、 客戶端向DNS服務器請求服務器地址
2、 DNS服務器響應客戶端請求
3、 客戶端與服務器端建立連接,TCP三次握手
4、 服務器與客戶端一系列交互(GET,POST,PUT,HEAD。。。)
5、 用來承載HTTP數據的TCP包
6、 結束通信,TCP四次握手

知道了大體的流程,下面來看看具體數據包的實例,以旺信PC版為例,僅作學習之用。
1、獲取DNS
技術分享圖片

2、返回域名以及IP

技術分享圖片

3、根據域名或IP篩選出具體的流量
技術分享圖片

4、對這股大流量另存後再次篩選並追蹤流
技術分享圖片

5、具體分析
技術分享圖片

三、抽絲剝繭

1、http信息分解
技術分享圖片

GET  //wwxb.5.13?cache=10155&nick=  HTTP/1.1\r\n
#請求的類型,URL,HTTP版本信息
Accept:image/gif
#請求的資源類型
User-Agent : SimpleHttpFetch
#執行http請求的客戶端類型
Host:gm.mmstat.com
#客戶端訪問的主機名
Cookie:cna.......
#cookie信息
HTTP /1.1 200 OK
#協議版本,響應狀態碼
Content-Type:
#響應的資源類型
Connection:Keep-Alive
#長鏈
Set-Cookie:
#設置與頁面關聯的cookie

更多詳見:http://www.runoob.com/http/http-header-fields.html

2、Content-Type(常見)

1、文件類型text/plain、text/html、text/javascript:表示通過HTTP訪問的文件類型為文本文件
2、文件類型text/jpeg、image/gif:表示通過HTTP訪問的文件類型為圖片
3、文件類型application/json、application/javascript等,表示通過HTTP訪問的文件類型為應用程序

Content-Type有很多,這裏只列出幾種,更多詳見:http://www.runoob.com/http/http-content-type.html

3、響應狀態碼(常見)

200:成功
301:臨時重定向
302:永久重定向
404:資源未找到
。。。

更多詳見:http://www.runoob.com/http/http-status-codes.html

四、千方百計

1、服務器域名可以通過DNS響應找到
2、服務器IP可以通過nslookup 域名 找到
3、域名確認可以whois查詢
4、域名功能可以通過請求方法以及響應頭信息看出

協議分析之HTTP