這篇文章主要介紹一下 Wireshark
抓包工具獲取到的 HTTP協議
相關的數據,而後對這些數據進行簡單的分析,主要目的是更深刻的理解 HTTP協議
,而後瞭解一下網絡爲何要分層, OSI模型
和TCP/IP
模型的區別。css
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.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 ms
,Load: 376
表示DOM
加載消耗了376 ms
。
HTTP
請求、響應的時間軸Clear Browser Cache
All
、XHR
、JS
、CSS
、Img
、Media
、Font
、Doc
、WS(WebSocket)
、Manifest
、Other
類型。Hide Data URLs
:domain
:Start Time
發出的第一個請求位於頂部,Response Time
開始下載的第一個請求位於頂部,End Time
完成的第一個請求位於頂部,Total Duration
鏈接設置時間和請求/響應時間最短的請求位於頂部,Latency
等待時間最短響應的請求位於頂部Names
:資源名稱Status
:HTTP
狀態碼Type
:請求的資源的 MIME
類型Initiator
:發起請求的對象或進程,Parser(解析器)
表示 Chrome
的HTML
解析器發起了請求,Redirect(重定向)
表示HTTP
重定向啓動了請求,Script(腳本)
:腳本啓動了請求,Other(其餘)
:一些其餘進程或動做發起請求,例如用戶點擊連接跳轉到頁面或在地址欄中輸入網址OSI (Open System Interconnection Reference Model)
模型是一種理論概念模型,並未真正被實現過,可是在實現網絡協議須要參考這種模型,才能更好的去理解網絡中的協議和分層:
3d
Tips:應用層
解決的是業務問題,表示層
負責把網絡中的消息轉化爲應用層
能夠讀寫的消息(如TLS/SSL),會話層
負責創建會話、握手、維持鏈接、關閉,傳輸層
解決進程與進程之間的通訊,網絡層
負責ip
地址之間創建鏈接,數據鏈路層
負責局域網中鏈接MAC
地址鏈接到中交換機、路由器等,物理層
主要負責信號是如何傳遞的。
實際在因特網中使用的是 TCP/IP
模型,在 TCP/IP
模型中對 OSI
模型作了不少簡化,好比應用層
沒有對 表示層
、會話層
作嚴格的區分,數據鏈路層
和 物理層
也沒有作嚴格的區分:
code
Tips:網絡分層中各層只須要負責各層本身所作的事情,不用關心其它層的工做,但會增長額外的數據處理延遲。
下載一個抓包演示用的報文文件,地址 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
相關的數據:
掃碼關注愛因詩賢