1. 程式人生 > >計算機網路實驗——HTTP

計算機網路實驗——HTTP

一.      實驗說明。

在這個實驗中,我們將探討HTTP協議的幾個方面:基本的GET/response互動、HTTP訊息格式、檢索大型HTML檔案、檢索帶有嵌入物件的HTML檔案、以及HTTP認證和安全性。

二.      基本HTTP獲取/響應(GET/response)互動

我們通過下載一個非常簡單的HTML檔案來開始對HTTP的探索——一個非常短的、不包含嵌入物件的檔案。

a.     啟動網頁瀏覽器。

b.     啟動EnthalBox嗅探器,如介紹性實驗室中所描述的(但尚未開始捕獲資料包)。在“顯示篩選器規範”視窗中輸入“HTTP”(只是字母,而不是引號),以便只在分組列表視窗中顯示捕獲的HTTP訊息。(我們只對HTTP協議感興趣,不想看到捕獲所有的混亂資料包)。

c.     等待一分鐘多一點(我們馬上就會明白),然後開始以太包捕獲。

d.     向瀏覽器輸入以下內容:

瀏覽器應該顯示非常簡單的單行HTML檔案。

e.     停止抓包

通過抓包結果可以看到,客戶端向伺服器請求一個簡單的HTML檔案,伺服器將該檔案返回給客戶端。

問題:

1.     瀏覽器執行HTTP版本1還是1.1?伺服器執行的是什麼版本的HTTP?

瀏覽器執行的HTTP版本是1.1,伺服器執行的HTTP版本也是1.1。

本地瀏覽器:

              伺服器:

2.     您的瀏覽器顯示哪些語言(如果有的話)可以通過伺服器接收?

我的本地瀏覽器顯示簡體中文(zh_CN)

3.     你的電腦的IP地址是什麼?gaia.cs.umass.edu伺服器呢?

本地電腦ip: 10.63.108.63

gaia.cs.umass.edu伺服器ip:128.119.245.12

4.     從伺服器返回到瀏覽器的狀態程式碼是什麼?

返回的狀態程式碼是 200 ,表示成功處理請求。

5.     您在伺服器上檢索到的HTML檔案是在什麼時候修改的?

在伺服器上檢索到的HTML檔案修改時間:2018.5.14  05:59:01

6.     有多少位元組的內容被返回到瀏覽器?

有126位元組的內容被返回到瀏覽器。

7.     除以上已回答過的欄位外,頭部還有哪些欄位?在資料包內容視窗中檢查原始資料,是否有未在資料包列表中顯示的頭部?

HTTP請求報文中還有Host欄位、connection欄位、Accept欄位、User-agent欄位、Accept-Encoding欄位等。

HTTP響應報文中還有server欄位、connection欄位等。

三.      HTTPGET/Response 有條件的相互作用。

步驟

①開啟Wireshark,開始資料包捕獲。

②在你的瀏覽器中輸入如下的 URL 地址:http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html

瀏覽器將會顯示一個很簡單的 5 行的 HTML 檔案;

③快速地在你的瀏覽器中再次輸入相同的 URL(或者點一下重新整理);

④停止Wireshark 資料包捕獲,在在 Wireshark 主視窗頂部的 Filter 中輸入“ http”,因此只有捕獲的 HTTP 訊息稍後將會顯示在資料包列表視窗中。

得到如下資料報:

問題:

8.     從你的瀏覽器到伺服器得到的請求中檢查第一個 HTTP GET 的內容。在 HTTP GET中你有沒有看到一行“ IF-MODIFIED-SINCE” ?為什麼?

沒有看到。因為這是瀏覽器第一次請求該頁面。

9.     檢查伺服器迴應內容,伺服器明確地返回了檔案的內容嗎?你怎樣斷定?

返回了檔案內容,因為返回狀態碼為200。並返回了html檔案。

10.  現在從你的瀏覽器到伺服器得到的請求中檢查第二個 HTTP GET 的內容。 HTTP GET 中你有沒有看到一行“IF-MODIFIED-SINCE” ?如果有,在“ IF-MODIFIED-SINCE”頭部有什麼資訊?

有這行欄位。資訊為上次請求該檔案的時間。

11.  第二次 HTTP 返回的狀態碼是多少?從伺服器返回的響應第二個 HTTP GET 的短語是什麼?伺服器明確地返回了檔案的內容嗎?為什麼?

狀態碼是304,短語是Not Modified,並沒有明確返回檔案內容,因為該網頁內容在上次訪問之後未被修改過,且本地中有上次訪問的快取。

四.      得到較長的文件。

在我們的示例中,檢索到的文件是簡單而簡短的HTML檔案。接下來,看看下載一個長的HTML檔案時會發生什麼。做到以下幾點:

①開啟你的瀏覽器,確信你的瀏覽器快取是空的,就如上面討論的;

②開啟Wireshark,開始資料包捕獲;

③在你的瀏覽器中輸入如下的 URL 地址:http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html 你的瀏覽器將會顯示相當長的美國權利法案;

④停止 Wireshark 資料包捕獲,在 Filter 欄輸入“ http”,因此只有捕獲的 HTTP 訊息稍後將會顯示在資料包列表視窗中。

問題:

12.  你的瀏覽器傳送了多少個HTTPGET請求訊息?

傳送了一個HTTPGET請求。

13.  傳輸這一個HTTP響應需要多少個TCP資料段?

傳輸這一個HTTP響應需要4TCP資料段。

14.  響應HTTP GET請求的相關的狀態碼和短語是什麼?

狀態碼200,短語OK

15.  TCP“Continuation”附加關聯的傳輸資料中有沒有HTTP狀態碼和短語?

有狀態碼和短語。

五.      帶有內嵌物件的HTTP

現在,我們已經看到了Ethalar如何顯示捕獲的大HTML檔案的分組流量,我們可以看看當瀏覽器下載帶有嵌入物件的檔案時會發生什麼,即,包含其他伺服器(在下面的示例中,影象檔案)儲存在另一個伺服器上的檔案。

步驟:

①開啟瀏覽器,確定你的瀏覽器快取是空的,就如上面討論的;

②開啟Wireshark Network Analyzer,開始資料包捕獲;

④停止 Wireshark 資料包捕獲,在 Filter 視窗中輸入“ http”,因此只有捕獲的 HTTP 訊息稍後將會顯示在資料包列表視窗中。

問題:

16.  瀏覽器一共發出了多少個HTTP GET請求?這些請求被髮送到的目的地的IP地址是多少?

傳送了四個HTTP GET請求,目的地址為:

128.119.245.12

128.119.245.12

128.119.240.90

128.119.240.90

17.  你的瀏覽器是否同時下載這兩張圖片(併發的從兩個網站上下載圖片)?你是如何判斷的?

不是併發下載的,有先後順序。

六.      HTTP 認證

訪問一個帶有密碼保護的網站。

步驟:

①確信你的瀏覽器快取是空的,就如上面討論的。關閉你的瀏覽器,然後再開啟;

②開啟Wireshark Network Analyzer,開始資料包捕獲;

③在你的瀏覽器中輸入如下的 URL 地址:http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html在出現的對話方塊中輸入使用者名稱和密碼,使用者名稱是“wireshark-students”,密碼是“networks”;

④停止Wireshark 資料包捕獲,在Filter視窗中輸入“ http”,因此只有捕獲的HTTP訊息稍後將會顯示在資料包列表視窗中。

問題:

18.  伺服器對起初的HTTP GET訊息的響應(狀態碼和短語)是什麼?與前一部分實驗相比,在這個響應訊息中出現了什麼新的欄位?

狀態碼:401 短語:AuthorizationRequired

新欄位:WWW-Authenticate

19.  當你的瀏覽器第二次傳送HTTP GET訊息時,有什麼新的欄位被包含在HTTP GET訊息中?對應的伺服器響應有沒有新的欄位出現?

GET訊息中出現了新的Authorization欄位。伺服器響應出現了ETag欄位。

20.  當你的瀏覽器第二次傳送HTTP GET訊息時,有什麼新的欄位被包含在HTTPGET訊息中?當你輸入正確的使用者名稱和密碼後,伺服器給出的響應是什麼?

HTTP request欄位。

輸入正確的使用者名稱和密碼後,伺服器給出的響應(狀態碼200,短語OK):