一、什麼是http協議?web
HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。windows
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服務器根據接收到的請求後,向客戶端發送響應信息。服務器
二、工做原理session
http協議的工做原理通俗來說,其實咱們打開瀏覽器,在地址中輸入URL,就是咱們常說的網址,而後就看到了對應的網頁。原理是怎樣的呢?架構
實際上,當咱們輸入URL以後,瀏覽器就給web服務器一個請求,web服務器接收到了進行識別和處理,生成相應的http響應(HTTP response),而後再發送給瀏覽器,瀏覽器解析http響應中的HTML,這樣咱們就看到了網頁,原理以下圖所示。分佈式
簡而言之就是,瀏覽器是老公、服務器是老婆。ide
老公說,老婆給我點零花錢,工具
老婆聽見了,聽聲音的確是本身家的老公,
老婆聽到了這個請求,想一想是時候給了,
就把錢給了老公,老公拿到了錢就能夠開始花了,
三、抓包工具fiddler介紹
fiddler應該是這個星球上最強大最好用的web調試工具了,可謂是曠古爍今。神器也!
他們記錄全部客戶端和服務器的http和https請求,容許你見識、設置斷點、甚至修改輸入輸出數據
能夠理解爲老婆和老公的管家,還兼職幹了點小三的活兒哈哈哈哈哈
四、fiddler的下載和安裝
官網直接下載、傻瓜式安裝
建議英文版、安裝路徑不要有中文
五、fiddler基本界面
最上面是主菜單、工具欄
左邊:會話列表
右邊分別是選項卡和功能面板
右下是命令欄
六、Inspectors選項卡
Inspectors選項卡下能夠查看http請求和http響應的報文結構,其中raw選項卡能夠產看完整的消息,
headers選項卡只能查看消息中的header
七、web sessions列表
會話列表,顯示抓到的http數據包
#:fiddler自動生成的ID
Result:響應的狀態碼
Protocol:使用的協議http或者https
Host:服務器的主機名和端口號
URL:路徑
Body:http響應的字節數
Cashing:跟緩存相關的字段的值
Content-type:響應Content-type的值
Process:對應本地windows的進程
八、fiddler如何設置開始捕獲和中止抓包
開始:打開fiddler就已經開始誅抓包
結束:F12鍵結束
九、http協議報文結構
報文分爲兩個
http請求報文和http響應報文
http請求報文結構
起始行
首部
主體
http響應報文結構
起始行
首部
主體
總結:
response和request結構基本同樣,一樣分爲三部分;
第一部分叫響應行,第二部分叫響應首部,第三部分是主體
起始行:狀態碼和狀態碼消息
首部:header
主體:body
注意:header和body之間有一個空行
不明白的能夠在fiddler和www.baidu.com之間慢慢研究,碼字累!
十、fiddler抓包原理
fiddler是以代理服務器的形式存在的,代理地址爲127.0.0.1,端口:8888,就是本機
至關於在客戶端和服務端設置了個收費站 (是否是很形象)