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ù)包截取圖,以下幾點(diǎn)說明如下:
1. 通過tcp的篩選條件,是由于tcp位于http協(xié)議的低層協(xié)議,可以完整抓取http的通訊過程。
2. 圖中10、12、13號(hào)數(shù)據(jù)包是tcp的3次握手。
3. 從14、15、16、17是一個(gè)完整的http通訊過程。
瀏覽器向網(wǎng)頁服務(wù)器發(fā)出請(qǐng)求,當(dāng)瀏覽器接收并顯示網(wǎng)頁前,此網(wǎng)頁所在的服務(wù)器會(huì)返回一個(gè)包含HTTP狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請(qǐng)求。HTTP狀態(tài)碼的英文為HTTP Status Code。
五種狀態(tài)碼:
1xx:信息提示,表示請(qǐng)求已被成功接收,繼續(xù)處理。
2xx:請(qǐng)求被成功提交。
3xx:客戶端被重定向到其他資源。
4xx:客戶端錯(cuò)誤狀態(tài)碼,格式錯(cuò)誤或者不存在資源。
5xx:描述服務(wù)器內(nèi)部錯(cuò)誤。
向服務(wù)器發(fā)起一個(gè)HEAD請(qǐng)求,這個(gè)方法在不必傳輸整個(gè)響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息。
4. 圖中28、29、33、34數(shù)據(jù)包是tcp的4次揮手。