使用tcpdump檢視HTTP請求響應
tcpdump安裝
在Ubuntu/Debian系統上,執行如下命令安裝tcpdump工具:
sudo apt-get install tcpdump
在CentOS系統上,執行如下命令安裝tcpdump工具:
sudo yum install tcpdump
安裝完tcpdump後,就可以使用man命令檢視tcpdump的文件了。如果想直接看看tcpdump的一些使用例子,執行:
man tcpdump | less -Ip examples
tcpdump檢視HTTP流量
檢視HTTP GET請求
sudo tcpdump -s 0 -A 'tcp dst port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
檢視HTTP POST請求
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
檢視HTTP請求響應頭以及資料
sudo tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
sudo tcpdump -X -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
後語
要理解上述tcpdump過濾器中的位操作,需要了解TCP資料包的構造。後面的參考資料中給出了一個分析例子。
筆者有過這樣的經歷,接手一個遺留的軟體專案,發現各個API介面引數沒有文件記錄,而程式碼中的註釋說明是過時的!當接手這種專案開始重構的時候,需要理解程式碼邏輯,如果能知道線上實際執行中的API請求引數是什麼樣子的,將有助於理解。筆者曾嘗試修改Nginx配置檔案來記錄HTTP POST請求資訊,卻沒有發現一個簡單有效的方案。使用上述tcpdump命令來捕獲HTTP POST請求就十分簡單了。
參考資料
相關推薦
使用tcpdump檢視HTTP請求響應
tcpdump安裝在Ubuntu/Debian系統上,執行如下命令安裝tcpdump工具:sudo apt-get install tcpdump 在CentOS系統上,執行如下命令安裝tcpdump工具:sudo yum install tcpdump 安裝完tcpdump後,就可以使用man命令檢視tcp
使用tcpdump檢視HTTP請求響應 詳細資訊 資料
tcpdump安裝在Ubuntu/Debian系統上,執行如下命令安裝tcpdump工具:sudo apt-get install tcpdump 在CentOS系統上,執行如下命令安裝tcpdump工具:sudo yum install tcpdump 安裝完tcpdump後,就可以使用man命令檢視tcp
谷歌瀏覽器檢視HTTP請求頭與響應頭
用谷歌瀏覽器開啟某個網頁後,右擊滑鼠,選擇【檢查】, 然後點選【network】,再重新整理一下(重新整理的時候才會捕捉HTTP請求頭、響應頭給你看), 重新整理之後,點選左邊【name】(其實是請求的網址)下面的任何一行,然後右邊就會顯示HTTP的請求和相應資訊,共有三欄【Genera
Google Chrome/IE/FireFox檢視HTTP請求頭request header響應頭response header|審查元素Network空的不顯示
來自:http://1.snowson.sinaapp.com/?p=359 chrome檢視網頁header,滑鼠右鍵開啟審查元素,或快捷鍵Shift+Ctrl+I或者shift+ctrl+c 當我開啟Network後,發現裡面是空的什麼也沒有。 查了下,才知,需要重
http請求/響應包格式
lang 方法 for tex charset agent lai 響應 鏈接 一、什麽是http協議? 轉載:http://blog.csdn.net/daijin888888/article/details/51025634 由w3c制訂的一種網絡應用層
HTTP請求/響應報文結構
空格 dont acc 保存 mime 描述 網頁 斷開 解析 HTTP協議版本有兩種:HTTP1.0和HTTP1.1 它們倆的區別在於:HTTP1.0對於每個連接都只能傳送一個請求和響應,請求後就會關閉,HTTP1.0沒有Host字段;而HTTP1.1在同一個連接中可以傳
一次 HTTP 請求響應過程的完整解析
將不 十個 動態獲取 完整性 內部 所有權 回退 是我 dns 因特網無疑是人類有史以來最偉大的設計,它互聯了全球數億臺計算機、通訊設備,即便位於地球兩端的用戶也可在頃刻間完成通訊。 可以說『協議』是支撐這麽一個龐大而復雜的系統有條不紊運作的核心,而所謂『協議』就是通訊雙方
http請求響應過程
用戶 http 行處理 動態編譯 請求 協議 不存在 關閉連接 響應 1) 建立連接:客戶端與服務器建立TCP連接 2) 發送請求:打開一個連接後,客戶端把請求信息發送到服務器的相應端口上,完成請求動作提交。 3) 發送響應:服務器在處理完客戶端請求之後,
http請求響應全過程
-a 平衡器 continue load 組織 要求 性能 attr domain HTTP 無狀態性 HTTP 協議是無狀態的(stateless)。也就是說,同一個客戶端第二次訪問同一個服務器上的頁面時,服務器無法知道這個客戶端曾經訪問過,服務器也無法分
Http請求響應碼含義
一、狀態碼幾個分類: 狀態碼 響應類別 出現原因 1XX 資訊性狀態碼(Informational) 伺服器正在處理請求 2XX 成
從HTTP請求-響應迴圈探索Flask的基本工作方式
本文基於《Flask Web開發實戰》第2章《Flask與HTTP》刪減改寫而來,作為該書的樣章分享。 HTTP(Hypertext Transfer Protocol,超文字傳輸協議)定義了伺服器和客戶端之間資訊交流的格式和傳遞方式,它是全球資訊網(World Wide Web)中資料交換的基礎。在這篇文
tomcat中的字符集問題,測試以及總結(HTTP請求響應)
HTTP伺服器的通常作用可以理解成,接收來自瀏覽器的請求,讀取其中的資訊,並返回http格式的資料 其中,瀏覽器傳送的資料主要以三種形式傳遞,get方式提交的引數,post方式的引數,以及cookie中攜帶的引數三類 而伺服器端,生成http返回資料的形式主要有3種 其中,JSP在本質上與Serv
Http 請求響應與內容協商(二)-$Ajax 和 Spring mvc
一、jquery $.ajax 中的引數說明 1、contentType:傳送資料到伺服器時所使用的內容型別。簡單的說就是告訴服務我從的是什麼型別。 預設是:"application/x-www-form-urlencoded"。 2、dataType:預期的伺服器響應
圖解HTTP請求響應報文
HTTP報文格式 常見的回寫客戶端的資料的型別 普通檔案:text/plain; charset=ios-8859-1 *.html:text/html; charset=ios-8859-1 *.jpg : image/jpeg *.gif : image/gif *.png
HTTP請求/響應分析
HTTP所採用的是請求/響應模型,HTTP訊息有兩種:請求(request)和響應(response). 這兩種訊息的組成都包括1)一個起始行(start line);2)零個或多個首部欄位(header field);3)以及一個代表訊息首部(message header)
http請求響應程式碼及其代表的錯誤含義
這些狀態程式碼表示臨時的響應。客戶端在收到常規響應之前,應準備接收一個或多個 1xx 響應。 · 100 - Continue 初始的請求已經接受,客戶應當繼續傳送請求的其餘部分。(HTTP 1.1新) · 101 - Switching Protocols 伺服器將遵從客
http請求/響應報文及工作原理
http(Hypertext transfer protocol,超文字傳輸協議),屬於應用層協議,目前主流web瀏覽器使用的是http/1.1,它是基於請求/響應的模型,基於http開發的web應用都是典型的C/S(Client/Server)結構,即客戶端傳
HTTP請求響應形式總結
HTTP請求響應方式總結 HTTP請求方式 以下內容綜合整理來自如下列連線的資料: 當瀏覽器向Web伺服器發出請求時,它向伺服器傳遞了一個數據塊,也就是請求資訊,HTTP請求資訊由3部分組成: 1).請求方法URI協議/版本 2).請求頭(Req
http請求響應模型
Internet的基本協議是TCP/IP協議(傳輸控制協議和網際協議),目前廣泛使用的FTP、HTTP(超文字傳輸協議)、Archie Gopher都是建立在TCP/IP上面的應用層協議,不同的協議對應不同的應用。而HTTP協議是Web應用所使用的主要協議。 HTTP協議是基於請求響應模式的。客戶端向伺服器
java網路socket程式設計(六)之HTTP請求/響應報文
介紹 http報文包含請求報文和響應報文2種報文,他們都包含起始行、首部欄位、主體三部分。其中,請求報文為客戶端向伺服器端請求資源時傳送的http報文位請求包含,而響應報文為從伺服器端發往客戶端的報文