目? 錄
1、實驗目的
2、實驗環境
3、實驗內容
4、實驗結果與分析
4.1 使用tcpdump命令抓包
4.2 HTTP字段分析
5、實驗小結
5.1 問題與解決辦法:
5.2 心得體會:
1、實驗目的
? ? ? ? 1、了解HTTP協議及其報文結構
? ? ? ? 2、了解HTTP操作過程:TCP三次握手、請求和響應交互
? ? ? ? 3、掌握基于tcpdump和wireshark軟件進行HTTP數據包抓取和分析技術
2、實驗環境
? ? ? ? 1、硬件要求:阿里云云主機ECS 一臺、筆記本電腦一臺
? ? ? ? 2、軟件要求:Linux/ Windows 操作系統
3、實驗內容
????????使用wget下載新疆大學主頁www.xju.edu.cn,利用tcpdump抓包并利用wireshark分析。
????????1. 瀏覽器運行HTTP版本1還是1.1?服務器運行的是什么版本的HTTP?
????????2. 你的電腦的IP地址是什么?服務器呢?
????????3. 從服務器返回到瀏覽器的狀態代碼是什么?
????????4. 您在服務器上檢索到的HTML文件是在什么時候修改的?
????????5. 有多少字節的內容被返回到瀏覽器?
????????6. 除以上已回答過的字段外,頭部還有哪些字段?在數據包內容窗口中檢查原始數據,是否有未在數據包列表中顯示的頭部?
4、實驗結果與分析
4.1 使用tcpdump命令抓包
????????1. 由于開始時并沒有wget命令,所以使用如下命令進行wget操作命令的下載。
yum install wget
????????2. 使用wget命令下載新疆大學主頁www.xju.edu.cn。
wget www.xju.edu.cn
????????3. 使用tcpdump命令抓取www.xju.edu.cn網站的數據包,并將所抓取的數據包保存在http.pcap文件中。
tcpdump -i eth0 -w http.pcap
4.2 HTTP字段分析
????????1. 使用wireshark打開保存的http.pcap文件,并對數據包進行相關的操作。
????????2. 使用過濾器得到與www.xju.edu.cn實現通信的http數據包時在應用顯示過濾器輸入以下語句。
http and ip.addr==111.115.76.75
????????3. 瀏覽器運行HTTP版本1還是1.1?服務器運行的是什么版本的HTTP?
瀏覽器運行HTTP版本為1.1
服務器運行的是1.1版本的HTTP
????????4. 你的電腦的IP地址是什么?服務器呢?
電腦的IP地址為:192.168.43.199
服務器的IP地址為:111.115.76.75
????????5. 從服務器返回到瀏覽器的狀態代碼是什么?
從服務器返回到瀏覽器的狀態代碼是200,表示成功處理請求
????????6. 您在服務器上檢索到的HTML文件是在什么時候修改的?
從服務器上檢索到的HTML文件時在2023年5月11日 周四 03:38:58修改的
????????7. 有多少字節的內容被返回到瀏覽器?
有107081 bytes的內容被返回瀏覽器
????????8. 除以上已回答過的字段外,頭部還有哪些字段?
在HTTP的請求報文中還有:Host,Connection,User-Agent,Accept,Referer,Accept-Encoding,Accept-Language,Server等
????????9. 在數據包內容窗口中檢查原始數據,是否有未在數據包列表中顯示的頭部?
沒有未在數據包列表中顯示的頭部
5、實驗小結
5.1 問題與解決辦法:
????????1. 問題一:使用tcpdump進行數據包的抓取時出現如下提示此命令未找到:
解決方法:由于命令輸入錯誤導致,數據包的抓取命令為tcpdump,而不是tcpdnmp,將對應命令進行更改后錯誤消失。
????????2. 問題二:對指定網絡接口的數據包進行抓取時出現如下提示語法錯誤:
解決方法:由于命令鍵入不完整所導致,指定網絡接口所需要的參數是-i,在eth0前方添加-i后錯誤消失。
????????3. 問題三:使用tcpdump抓取所有的數據包時一直在抓取,不能夠自動停止抓包:
解決方法:使用Ctrl+c就可以終止運行的命令,進而就可以停止抓包。
????????4. 問題四:使用Wireshark對抓取的數據包進行過濾時出現如下提示輸入框出現紅色:
解決方法:由于過濾命令輸入錯誤,在過濾地址時使用ip.addr,將輸入內容中的id.addr改為ip.addr后紅色報錯消失。
????????5. 問題五:使用Wireshark對抓取的數據包進行多個條件同時成立過濾時出現如下提示輸入框出現紅色:
解決方法:由于多個條件同時成立時需要使用and進行連接,但是輸入命令時并沒有使用and進行連接所導致,在輸入內容中加入and后紅色報錯消失。
????????6. 問題六:使用Wireshark對抓取的數據包進行過濾時出現如下提示輸入框出現紅色:
解決方法:由于過濾命令對大小寫敏感導致輸入錯誤,在過濾HTTP時使用HTTP,將輸入內容中的HTTP改為http后紅色報錯消失。
????????7. 問題七:使用wget命令時出現如下提示此命令未找到:
解決方法:由于系統中沒有wget命令所導致,需要在使用此命令前通過 yum install wget 命令進行安裝。
5.2 心得體會:
????????1、HTTP是一個通用的Web協議,它在Web應用程序中扮演著關鍵的角色。
????????2、HTTP不僅是一種協議,而且是Web應用程序開發中的核心要素之一。
????????3、HTTP是無狀態的,這意味著服務器和客戶端之間的每個請求和響應都是獨立的,并且服務器不會保留關于任何先前請求或響應的狀態信息。
????????4、為了處理具有狀態的Web應用程序,HTTP引入了Cookie機制。
????????5、HTTP是基于請求/響應模型的,客戶端發送請求消息,服務器發送響應消息。
????????6、每個消息都由一個起始行、一組HTTP頭部字段和一個可選的消息體組成。
????????7、請求消息用于請求服務器執行特定的操作,而響應消息用于回顯服務器的執行結果。
????????8、HTTP支持多種請求方法:GET、POST、PUT等來要訪問的。
????????9、HTTP支持緩存,緩存可以高性能減少延和帶寬消。HTTP緩存使用HTTP頭部控制緩存。
????????10、HTTP使用狀態碼表示請求和響應的結果。狀態碼由三位數字組成,例如200表示成功、404表示未找到、500表示服務器內部錯誤等。
????????11、HTTP頭部包含的有關消息可以在客戶端和服務器之間傳遞附加信息。
????????12、HTTP協議可以幫助我們理解Web應用的基本工作原理。
????????13、HTTP協議是一個基于請求和響應模式的協議,它使用頭部字段來傳遞關于請求和響應的元數據。
????????14、Accept:指示客戶端能夠處理的媒體類型。
????????15、Accept-Encoding:指示客戶端能夠處理的壓縮類型,服務器可以根據該字段來壓縮傳輸的數據。
????????16、Cookie:表示客戶端已創建的會話標識。
????????17、Host:指定被請求資源的服務器的域名和端口號。
????????18、User-Agent:客戶端標識,用于標識客戶端的類型、系統、瀏覽器等信息。
????????19、Content-Encoding:指示服務器對響應實體執行的壓縮類型。
????????20、Content-Length:指示響應實體的長度(單位為字節)。
????????21、Content-Type:指示響應實體的MIME類型。
????????22、Set-Cookie:設置響應的cookie。
????????23、Server:指示HTTP服務器的軟件名稱和版本號。
????????24、Cache-Control:控制緩存的行為,例如緩存的最大年齡、是否進行重新驗證、是否跳過代理緩存等。
????????25、Connection:指示客戶端或服務器是否關閉連接。
????????26、Date:指示響應的日期和時間。
????????27、Transfer-Encoding:指示傳輸編碼。
????????28、上述HTTP頭部字段是HTTP協議中的常用字段,了解HTTP頭部字段的含義和用法可以幫助我們更好地理解HTTP工作的過程及優化網絡應用程序的性能。