[Wireshark] 觀察 HTTP Authentication 驗證的流程
最近在研究 HTTP Authentication 的東西,
原本以為像是 http://user:pass@host 這種網址,
是會直接向 HTTP 伺服器請求完整的 http://user:pass@host 網址,
從 Wireshark 來看才發現不是~
先試著直接連 http://172.22.1.4,這是個需要 HTTP authentication 的伺服器,
可以看到我們發出 GET 請求之後,伺服器回傳了 HTTP 401 Unauthorized,
並且提供了 WWW-Authenticate 這個標頭,說明需要做 Basic authentication:
當瀏覽器看到這個回應時,就會跳出一個對話框,讓使用者輸入帳號密碼,
接著瀏覽器再將帳號密碼用 base64 編碼後,放在 Authorization 標頭裡。
(↑ 這是 Basic authentication 的作法)
如下例,像我隨便打了帳號和密碼 mypass,
整串 myuser:mypass 就被 base64 編碼成 bXl1c2VyOm15cGFzcw== 送過去了,
但因為帳密是錯的,因此伺服器還是回傳了 HTTP 401 Unauthorized:
如果輸入了正確的帳密的話,伺服器就會回傳正確的 HTTP 200 OK 囉:
像這樣用 Wireshark 來學習網路的東西,感覺真的很不錯呀~^^
(本頁面已被瀏覽過 1,185 次)