抓包分析Http301重定向流程

2021-09-21 03:37:48 字數 1004 閱讀 7776

客戶端訪問

www.espn.com

,由於此網域名稱已不存在,相關**資訊轉到

www.espn.go.com。相關

trace

檔案,見附件。

先用sniffer開啟trace,檢視相關資料報,如下圖:

前兩個為dns查詢及響應,客戶端獲取到伺服器ip,進行了tcp三次握手(第3-5個資料報)。第6個包為http get,通過sniffer解碼如下圖:

請求型別為get,版本為http 1.1,uri為

www.espn.com。

第7個包為tcp的確認,第8、9個包的出現屬於亂序(判定原因後面會解釋)。

第10個包,為伺服器端的響應,如下圖:

注意上面黃色標出的3個字段。

響應的狀態碼為301,並進行了此**的含義:永久移除,即此網域名稱已經不存在了。

connection欄位與get包此字段進行對比:

connection: keep-alive,connection: close,這也是http1.1與1.0的乙個主要區別,1.1支援在乙個tcp會話中進行多次應用請求,而1.0預設只支援1個。

第3個黃色標出部分,顯示了重定向的url,

第12、14為客戶端對重定向網域名稱的解析

接下來客戶端又進行了新的tcp連線,並發起對新網域名稱的get請求,如下圖第19個包:

接下來伺服器進行了成功的響應,http 200,如下圖:

另外需要指出的是,sniffer給出了針對這個響應結果,後續資料的傳送序列,這個序列可以幫助分析人員很直觀的定位丟包,及分析重傳情況。這個序列也是sniffer獨有,其他分析產品沒有提供的,如下圖:

後續資料共分為21個包進行傳輸,黃色部分標出了這些資料報在整個trace檔案中的位置。

這樣在後續的每個資料報中都會體現其在整個會話中的位置,如下圖:

另由於ip網路是盡力**,並不能保證在傳輸過程中各個資料報的到達順序。所以會出現一些先發出的資料而後到的情況,如下圖:

2012.5.14

附件:

HTTP 301重定向介紹,配置及其程式設計實現

什麼是301重定向呢?301重定向是當使用者或搜尋引擎向 伺服器發出瀏覽請求時,伺服器返回的http資料流中頭資訊 header 中的狀態碼的一種,表示本網頁永久性轉移到另乙個位址。其它常見的狀態碼還包括,200表示一切正常,404網頁找不到,302暫時轉向,等等。為什麼要用301轉向?轉向方法主要...

HTTP頁面是如何完成301重定向的

為了避免出現重複內容的不同 的情況,建議廣大站長將所有的http頁面使用301重定向到對應的https,為了讓更多人熟悉301重定向,本文將介紹301重定向的方式。當然大前提使用者在伺服器上必須要正確安裝ssl證書。301重定向 301重定向是指頁面永久性移走,是網頁更改位址後對搜尋引擎最友好的方法...

HTTP協議分析系列(四) 重定向

第一步 新建乙個header.php 頁 header location 預設是302重定向 第二步 分析 如何制定重定向呢?指定用301 重定向,header location 預設是302重定向 還有乙個問題 對於一片新聞,get請求,重定向無所謂,還能看到原來的內容就行。但如果是post 資料...