1、什么是http協議?
HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。
HTTP是一個基於TCP/IP通信協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。
HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分布式超媒體信息系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的規范化工作正在進行之中,而且HTTP-NG(Next Generation of HTTP)的建議已經提出。
HTTP協議工作於客戶端-服務端架構為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發送所有請求。Web服務器根據接收到的請求后,向客戶端發送響應信息。
2、工作原理
http協議的工作原理通俗來講,其實我們打開瀏覽器,在地址中輸入URL,就是我們常說的網址,然后就看到了對應的網頁。原理是怎樣的呢?
實際上,當我們輸入URL之后,瀏覽器就給web服務器一個請求,web服務器接收到了進行識別和處理,生成相應的http響應(HTTP response),然后再發送給瀏覽器,瀏覽器解析http響應中的HTML,這樣我們就看到了網頁,原理如下圖所示。
簡而言之就是,瀏覽器是老公、服務器是老婆。
老公說,老婆給我點零花錢,
老婆聽見了,聽聲音的確是自己家的老公,
老婆聽到了這個請求,想想是時候給了,
就把錢給了老公,老公拿到了錢就可以開始花了,
3、抓包工具fiddler介紹
fiddler應該是這個星球上最強大最好用的web調試工具了,可謂是曠古爍今。神器也!
他們記錄所有客戶端和服務器的http和https請求,允許你見識、設置斷點、甚至修改輸入輸出數據
可以理解為老婆和老公的管家,還兼職干了點小三的活兒哈哈哈哈哈
4、fiddler的下載和安裝
官網直接下載、傻瓜式安裝
建議英文版、安裝路徑不要有中文
5、fiddler基本界面
最上面是主菜單、工具欄
左邊:會話列表
右邊分別是選項卡和功能面板
右下是命令欄
6、Inspectors選項卡
Inspectors選項卡下可以查看http請求和http響應的報文結構,其中raw選項卡可以產看完整的消息,
headers選項卡只能查看消息中的header
7、web sessions列表
會話列表,顯示抓到的http數據包
#:fiddler自動生成的ID
Result:響應的狀態碼
Protocol:使用的協議http或者https
Host:服務器的主機名和端口號
URL:路徑
Body:http響應的字節數
Cashing:跟緩存相關的字段的值
Content-type:響應Content-type的值
Process:對應本地windows的進程
8、fiddler如何設置開始捕獲和停止抓包
開始:打開fiddler就已經開始誅抓包
結束:F12鍵結束
9、http協議報文結構
報文分為兩個
http請求報文和http響應報文
http請求報文結構
起始行
首部
主體
http響應報文結構
起始行
首部
主體
總結:
response和request結構基本一樣,同樣分為三部分;
第一部分叫響應行,第二部分叫響應首部,第三部分是主體
起始行:狀態碼和狀態碼消息
首部:header
主體:body
注意:header和body之間有一個空行
不明白的可以在fiddler和www.baidu.com之間慢慢研究,碼字累!
10、fiddler抓包原理
fiddler是以代理服務器的形式存在的,代理地址為127.0.0.1,端口:8888,就是本機
相當於在客戶端和服務端設置了個收費站 (是不是很形象)