Wireshark可以跟蹤網(wǎng)絡(luò)協(xié)議的通訊過程,本節(jié)通過http協(xié)議,在了解Wireshark使用的基礎(chǔ)上,重溫http協(xié)議的通訊過程。
TCP(Transmission Control Protocol,傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。
HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應(yīng)用層協(xié)議,是萬維網(wǎng)的數(shù)據(jù)通信的基礎(chǔ)。
下圖是訪問百度頁面的頭部文件的Wireshark數(shù)據(jù)包截取圖,以下幾點說明如下:
1.通過tcp的篩選條件,是由于tcp位于http協(xié)議的低層協(xié)議,可以完整抓取http的通訊過程。
2.圖中10、12、13號數(shù)據(jù)包是tcp的3次握手。
3.從14、15、16、17是一個完整的http通訊過程。
瀏覽器向網(wǎng)頁服務(wù)器發(fā)出請求,當(dāng)瀏覽器接收并顯示網(wǎng)頁前,此網(wǎng)頁所在的服務(wù)器會返回一個包含HTTP狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請求。HTTP狀態(tài)碼的英文為HTTP Status Code。
五種狀態(tài)碼:
1xx:信息提示,表示請求已被成功接收,繼續(xù)處理。
2xx:請求被成功提交。
3xx:客戶端被重定向到其他資源。
4xx:客戶端錯誤狀態(tài)碼,格式錯誤或者不存在資源。
5xx:描述服務(wù)器內(nèi)部錯誤。
向服務(wù)器發(fā)起一個HEAD請求,這個方法在不必傳輸整個響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息。
4.圖中28、29、33、34數(shù)據(jù)包是tcp的4次揮手。