網絡協議-HTTP 協議(抓包實戰和網絡分層)

​這篇文章主要介紹一下 Wireshark 抓包工具獲取到的 HTTP協議 相關的數據,而後對這些數據進行簡單的分析,主要目的是更深刻的理解 HTTP協議,而後瞭解一下網絡爲何要分層, OSI模型TCP/IP模型的區別。css

1.HTTP 協議抓包實戰(Wireshark)

1.1 打開 Wireshark 工具,選中正在使用的網卡 以太網4(以本身電腦實際使用爲準),點擊 捕獲,而後選擇 選項

1.2 在新窗口中的過濾欄中輸入 port 80
緩存

Tips:輸入  port 80 以後點擊  開始便可開始捕獲, port 80表示篩選出和  80端口 相關的數據請求。

1.3 打開 Telnet 工具模擬 HTTP 請求:網絡

telnet singwa666.com 80
GET /themes/simpleboot3/portal/public/assets/css/moco.css HTTP/1.1
Host: singwa666.com

以下圖所示:
dom

1.4 Telnet 模擬 HTTP 請求以後,點擊左上角紅色 按鈕中止抓取報文:
ide

1.5 找到 WireShark 中抓取到的該條 HTTP 請求的相關報文:
工具

Tips:找到  Telnet 中模擬請求的那條數據  雙擊

1.6 雙擊該條HTTP 請求數據:
網站

Tips:如圖所示看到的報文信息都是符合基於  ABNF 描述的  HTTP 協議格式規範的。

2.Chrome 抓包:Network 面板分析 

2.1 Network 示意圖spa

Tips:從 概要能夠看出, 29 requests 表示  29 個請求, 46.9 kB transferred 表示經過網絡傳輸了  46.9KB數據, 960 kB resources 表示頁面加載了  960KB 的資源, Finish: 421 ms 表示總共完成花了  421 ms 時間, DOMContentLoaded: 201 ms 表示  DOM 內容加載總共消耗  201 msLoad: 376 表示 DOM加載消耗了  376 ms

2.2 Network 面板說明

  • 控制器:控制面板的外觀和功能
  • 過濾器:過濾請求列表中顯示的資源(按住 Ctrl 能夠選擇過濾多個條件)
  • 概覽:顯示 HTTP 請求、響應的時間軸
  • 請求列表:默認時間排序,可選擇顯示列
  • 概要:請求總數、總數據量、總花費時間

2.3  控制器說明

  • 開始抓包
  • 中止抓包
  • 清除請求
  • 要跨頁面加載保存請求,好比某個網站頁面有跳轉時想保留原來的請求列表,可選擇該項
  • 中止使用緩存
  • 離線模擬:
  • 模擬其餘網速鏈接:,其中包含了自定義網速
  • 隱藏 Filter 窗格
  • 手動清除緩存:右鍵點擊請求選擇 Clear Browser Cache

2.4  過濾器說明

  • 過濾 AllXHRJSCSSImgMediaFontDocWS(WebSocket)ManifestOther 類型。
  • 按住 Ctrl 能夠選擇過濾多個條件。
  • 按時間過濾:概覽面板,拖動滾動條。
  • Hide Data URLs
  • domain:

2.5  請求列表

  • 默認是時間排序
  • 按列排序
  • 按照活動時間排序,Start Time 發出的第一個請求位於頂部,Response Time 開始下載的第一個請求位於頂部,End Time 完成的第一個請求位於頂部,Total Duration 鏈接設置時間和請求/響應時間最短的請求位於頂部,Latency 等待時間最短響應的請求位於頂部
  • Names:資源名稱
  • StatusHTTP 狀態碼
  • Type:請求的資源的 MIME類型
  • Initiator:發起請求的對象或進程,Parser(解析器)表示 ChromeHTML解析器發起了請求,Redirect(重定向)表示HTTP重定向啓動了請求,Script(腳本):腳本啓動了請求,Other(其餘):一些其餘進程或動做發起請求,例如用戶點擊連接跳轉到頁面或在地址欄中輸入網址

3. OSI 模型

OSI (Open System Interconnection Reference Model)模型是一種理論概念模型,並未真正被實現過,可是在實現網絡協議須要參考這種模型,才能更好的去理解網絡中的協議和分層:
3d

Tips: 應用層解決的是業務問題, 表示層負責把網絡中的消息轉化爲 應用層能夠讀寫的消息(如TLS/SSL), 會話層負責創建會話、握手、維持鏈接、關閉, 傳輸層解決進程與進程之間的通訊, 網絡層負責 ip地址之間創建鏈接, 數據鏈路層負責局域網中鏈接  MAC 地址鏈接到中交換機、路由器等, 物理層主要負責信號是如何傳遞的。

4.TCP/IP 模型

實際在因特網中使用的是 TCP/IP 模型,在 TCP/IP 模型中對 OSI 模型作了不少簡化,好比應用層沒有對 表示層會話層作嚴格的區分,數據鏈路層和 物理層也沒有作嚴格的區分:
code

Tips:網絡分層中各層只須要負責各層本身所作的事情,不用關心其它層的工做,但會增長額外的數據處理延遲。

5.報文頭部

6.抓包分析

下載一個抓包演示用的報文文件,地址 http://www.singwa666.com/demo.pcapng

6.1 首先用 WireShark 打開報文文件,而且用 http 過濾:

6.2 點開其中的一條進行分析:

6.3 點開 Ethernet II 能夠看到數據鏈路層相關的數據:

Tips:以太網層展現了  MAC 地址相關信息。

6.4 點開 Internet Protocol ... 能夠看到 IP層 相關的數據:

6.5 點開 Transmission Control Protocol ... 能夠看到 TCP層 相關的數據:

6.6 點開 Hypertext Transfer Protocol 能夠看到 應用層 HTTP 相關的數據:

掃碼關注愛因詩賢

相關文章
相關標籤/搜索