HTTP詳解及抓包測試


1.工具介紹

抓包工具:Fiddler

詳細使用見http://www.hangge.com/blog/cache/detail_1697.html

參考:https://www.cnblogs.com/yyhh/p/5140852.html

2.抓取http請求報文

一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據4個部分組成.

請求行:

POST http://h5data.talkingdata.net/app/v1 HTTP/1.1

這一行主要包括請求方法,URI(資源定位符) ,HTTP協議版本

協議版本:主要有http0.9,1.0,1.1

0.9:只接受GET一種請求方法,沒有在通信中指定版本號,且不支持請求頭

1.0:第一個在通信中指定的版本號,每對請求/ 響應都使用一個新的連接。

1.1:采用持久連接,在請求消息頭多一個Host域,增加了OPTIONS, PUT, DELETE, TRACE, CONNECT這些Request方法

請求方法見下圖:

請求頭部:

Host: h5data.talkingdata.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
Accept: text/plain
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://hackinglab.cn/ShowQues.php?type=scripts
Content-Type: application/x-www-form-urlencoded
Content-Length: 480
Origin: http://hackinglab.cn
Connection: keep-alive

請求頭部由鍵/值對組成,每行一對,鍵和值用英文冒號“:”分隔。請求頭部通知服務器有關於客戶端請求的信息

典型的常用請求頭有:

User-Agent:產生請求的客戶端類型。

Accept:客戶端可識別的內容類型列表。

Host:請求的主機名,允許多個域名同處一個IP地址,即虛擬主機。

Accept-Encoding: 客戶端使用的編碼環境和編碼方式

Accept-Language: 客戶端語言環境

Authorization:授權信息,一般用於存放授權之后的信息

Connection:表示是否需要持久連接

Content-Length:表示請求數據正文的長度

Cookie:這個與服務器端做交互的,存儲保持會話的重要信息 Referer:表示該次請求的來源,一般用於做防盜鏈

請求數據

{"deviceId":"14cdef1e9f1072000","appkey":"680D438DBA1B46D2B47C4077D858EA29","appProfile":{"versionName":"hackinglab","versionCode":"v1.0","initTime":1553139117023,"sdkVersion":"H5+APP+v1.0.1","partner":""},"deviceProfile":{"pixel":"1920*1080*1","language":"zh-CN","timezone":8},"msgs":[{"type":2,"data":{"id":"14cdef1e9f1072000155313911725700","start":1553139117027,"status":2,"duration":0,"pages":[],"events":[{"count":1,"start":1553151442437,"id":"提交答案","label":""}]}}]}

2.抓取http應答報文

HTTP響應也由四個部分組成,分別是:狀態行、響應頭、空格、響應數據。

狀態行

HTTP/1.1 200 OK

分別是:HTTP版本,狀態碼,解釋狀態碼的簡單短語

響應頭

Access-Control-Allow-Credentials: true
Access-Control-Allow-Header: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Origin
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Origin: *
Content-Type: application/octet-stream
Date: Thu, 21 Mar 2019 06:57:19 GMT
Server: nginx
Content-Length: 3
Connection: keep-alive

響應數據

ok

3.攔截請求並修改請求發送

測試網站:http://hackinglab.cn/ShowQues.php?type=bases

如圖:我輸入錯誤答案回答錯誤,把發送的報文攔截下來,如下圖:

其中ans即為我輸入的答案,再來看看應答報文:

明顯說明答案錯誤!!

沒事,繼續,將我們的請求報文中的ans變成正確格式,如下圖

然后我們再來看看應答報文:

明顯說明答案正確!!!

這大致就是修改發送報文的方法了!我的去想想為啥會亂碼!感興趣學習的同志加個關注喲!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM