iT邦幫忙

2026 iThome 鐵人賽

DAY 15
0
Security

網管與資安基礎實戰:從 Linux 指令到 Wireshark 封包分析系列 第 15 篇

# [Day 15] HTTP 協定基礎架構與狀態碼:看見網頁背後的真實對話

  • 分享至 

  • xImage
  •  

結束了前兩週在網路底層(Layer 2、3、4)的泥淖中打滾,今天我們正式邁入鐵人賽的第三階段:HTTP 流量與應用層深度分析!

我們終於往上爬到了大家最熟悉的「應用層 (Layer 7)」。每天打開瀏覽器上網,背後運作的幾乎都是 HTTP (超文字傳輸協定) 或加密版的 HTTPS。最棒的是,早期的 HTTP 協定是以「純文字」進行溝通的,這代表只要我們用 Wireshark 攔截下來,裡面的對話內容完全是一覽無遺。

今天,我們就來親手抓出網頁瀏覽時最經典的兩種「狀態碼 (Status Code)」。


一、捕捉 HTTP 200 OK (成功狀態碼)

當你在瀏覽器輸入網址並順利看到網頁畫面時,背後其實是伺服器對你說了一句:「200 OK (沒問題,資料給你)」。

【實作練習】

  1. 開啟 Wireshark 開始擷取,並在上方的顯示過濾器輸入 http (過濾掉底層的 TCP 三方交握,讓畫面更乾淨)。
  2. 打開 Ubuntu 終端機,使用指令發送一個標準的網頁請求:
    curl [http://example.com](http://example.com)
    

https://ithelp.ithome.com.tw/upload/images/20260929/20184351PTbaADwfVS.png

畫面解析:
從 Wireshark 的列表中可以看到非常標準的「一問一答」:

  • 封包 9 (GET / HTTP/1.1):這是我們 (客戶端) 發出的請求,意思是「請給我網站根目錄 ( / ) 的資料」。
  • 封包 11 (HTTP/1.1 200 OK):這是伺服器的熱情回應,表示請求成功,並把網頁資料包在裡面傳回來了。

二、解構 HTTP 回應標頭 (Response Headers)

伺服器回傳網頁時,除了把 HTML 原始碼丟給我們,還會在封包前面附加一段「標頭 (Headers)」,用來告訴瀏覽器這包資料的屬性。

【實作練習】
停止抓包後,我們點擊剛剛那行 200 OK 的封包,並在中間的詳細資訊窗格展開最下方的 Hypertext Transfer Protocol 這一層。

https://ithelp.ithome.com.tw/upload/images/20260929/20184351wxzfLirDdi.png

畫面解析:
展開後,你可以清楚看到伺服器跟我們說的悄悄話:

  • Status Code: 200 (狀態碼)
  • Content-Type: text/html (告訴瀏覽器這是一份 HTML 文件)
  • Server: cloudflare (甚至不小心洩漏了伺服器是使用了 Cloudflare 的服務)
    在資安探測(Footprinting)階段,駭客往往就是透過檢查這些標頭,來推測目標伺服器使用的軟體與版本!

三、觸發與捕捉 HTTP 404 (找不到網頁)

除了成功的 200,我們在網路上最常遇到的絕對是「404 Not Found」。這代表你請求連線成功了,但你要找的檔案不在伺服器上。

【實作練習】
我們再次啟動 Wireshark 擷取,並在終端機故意輸入一個不存在的路徑:

curl [http://example.com/idonotexist](http://example.com/idonotexist)

https://ithelp.ithome.com.tw/upload/images/20260929/20184351pEn4jYHei5.png

畫面解析:
這一次,客戶端發出的請求變成了 GET /idonotexist HTTP/1.1。
而伺服器收到後找不到這個檔案,於是毫不留情地回傳了紅色的 HTTP/1.1 404 Not Found 封包。

常見的狀態碼還有:

  • 3xx 系列 (重新導向):例如 301 Moved Permanently (網址已永久更改)。
  • 4xx 系列 (客戶端錯誤):例如 403 Forbidden (你沒有權限看這個網頁)。
  • 5xx 系列 (伺服器錯誤):例如 500 Internal Server Error (伺服器自己當機了)。

🎯 今日小結

今天我們正式踏入應用層,並透過實作驗證了 HTTP 的純文字明碼特性。我們不僅抓到了請求與回應,還拆開標頭看到了伺服器的底細。這為我們接下來的網頁流量分析打下了非常好的基礎。

🔜 明日預告

既然 HTTP 是明碼傳輸,那是不是代表別人在網頁上輸入的帳號密碼,我們也都能看見?
明天 [Day 16],我們將進入本系列最精采的實戰之一:教你使用 Wireshark 的殺手級功能 「Follow TCP Stream (追蹤 TCP 串流)」,直接把破碎的封包拼湊成完整的對話紀錄,看穿未加密通訊的危險性!我們明天見。


上一篇
# [Day 14] ARP 協定解析與廣播封包觀察:尋找 MAC 身分證的翻譯官
下一篇
# [Day 16] 實戰觀察:擷取 HTTP GET 請求封包,看穿裸奔的帳號密碼
系列文
網管與資安基礎實戰:從 Linux 指令到 Wireshark 封包分析 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言