HTTP 重新導向的運作機制與狀態碼
HTTP 重新導向是 Web 伺服器引導用戶端(例如瀏覽器)存取新 URL 的標準機制。當伺服器收到請求並決定需要重新導向時,會回傳一個 3xx 範圍的狀態碼,並在回應標頭中附帶 Location 欄位,指出目標 URL。
不同的狀態碼代表不同的重新導向語意,主要分為永久與暫時兩類:
- 永久重新導向:包含 301 (Moved Permanently) 與 308 (Permanent Redirect) 狀態碼。這表示資源已永久移至新位置,搜尋引擎通常會將權重轉移至新 URL。
- 暫時重新導向:包含 302 (Found)、303 (See Other) 與 307 (Temporary Redirect) 狀態碼。這表示資源僅暫時移動,後續請求仍應存取原始 URL。
本工具在分析時,會將 301 與 308 標記為「永久重新導向」,將 302、303 與 307 標記為「暫時重新導向」。若遇到其他非上述類型的回應,則會歸類為「其他回應」,而鏈路的終點則會顯示為「最終回應」。
Location 標頭與 URL 解析規則
在重新導向過程中,Location 標頭的值可以是絕對 URL(包含協定與主機名,例如 https://example.com/page),也可以是相對 URL(例如 /signin)。
當遇到相對 URL 時,必須結合當前步驟的基準 URL 才能解析出完整的目標地址。其解析規則如下:
- 第一跳的相對路徑解析:如果第一個回應就使用相對
Location,系統必須依賴使用者提供的「起始 URL(選填)」作為基準來進行解析。若未提供起始 URL,將無法正確還原第一跳的完整目標。 - 後續步驟的解析:對於第二跳及之後的步驟,系統會自動以前一個步驟所「解析後的目標」作為基準 URL,用來解析當前步驟的相對
Location。
透過此機制,工具能逐跳計算出「解析後的目標」,呈現完整的 URL 轉移軌跡。
常見的重新導向問題與安全性風險
複雜的重新導向鏈路常會隱藏配置錯誤或安全隱患,本工具會自動偵測並標記以下四種常見問題:
- 循環:重新導向路徑中出現重複的 URL,導致用戶端陷入無限循環而無法載入網頁。
- HTTPS 降級:從安全的 HTTPS 協定重新導向至未加密的 HTTP 協定,這會使傳輸數據暴露於中間人攻擊的風險中。
- 缺少 Location:回應中含有 3xx 狀態碼,卻未提供
Location標頭,導致用戶端無法得知下一步的去向。 - Location 無效:
Location標頭中的 URL 格式錯誤,無法被正確解析。
本地端靜態分析與隱私保護
本工具採用完全本地化的靜態分析技術。當您貼上回應標頭或 URL 鏈路時,所有的解析與計算工作皆直接在您的瀏覽器中處理,BroBroGo 不會上傳或儲存任何資料。
由於本工具不進行任何實際的網路請求,其運作具有以下特性:
- 無網路存取:工具不會實際造訪、測試或驗證 URL 的可達性,亦不會與目標伺服器建立連線。
- 純文字分析:分析結果完全基於您輸入的文字內容,無法驗證回應標頭的真實性,也無法保證所有瀏覽器的實際行為皆與分析結果一致。
- 輸入限制:工具單次最多可分析 50 跳,且輸入內容的最大長度限制為 100,000 個字元。若輸入無效或格式不符,系統將清除先前的結果並顯示錯誤提示。
常見問題
可以貼上哪些鏈路格式?
可以貼上連續的 HTTP 回應標頭區塊,也可以先寫起始 URL,再逐行寫 301 /new、200 等狀態與目標;也支援完整的來源—狀態—目標行。
相對 Location 如何解析?
/signin 這類值會依目前這一跳的 URL 解析。若第一個回應使用相對 Location,請填寫起始 URL;後續每一跳會以前一個解析出的目標為準。
這個工具會存取或驗證 URL 嗎?
不會。工具只分析您貼上的文字,不會驗證網站能否存取、回應標頭是否真實,也無法保證瀏覽器一定會走相同的鏈路。
為什麼會出現「請輸入完整的 HTTP 或 HTTPS 起始 URL。」的錯誤?
當輸入的第一個回應包含相對 Location(例如 /dashboard),但您沒有在「起始 URL(選填)」欄位中提供一個包含協定(http:// 或 https://)的完整網址時,工具便無法解析該相對路徑,因而會顯示此錯誤提示。