§

URL

§

URL 各部分

完整 URL(href)
協定
使用者名稱
密碼
主機
主機名稱
連接埠
路徑名稱
搜尋字串(原始)
雜湊值(片段)
來源
§

查詢參數

值(原始) 解碼後的值

此 URL 中沒有查詢參數

台灣個人資料保護委員會(PDPC)要求業者在 Cookie 橫幅稽核中完整揭露查詢字串所附帶的追蹤參數;TWCERT/CC 在 .tw 網域的釣魚 URL 鑑識作業中,也須逐一解析 query parameter 以判斷重導目標。本解析器採用原生 WHATWG URL 標準,其解析結果與 Node.js、Deno 及 Cloudflare Workers 完全一致,適合資安工程師快速拆解可疑連結,或配合個資法稽查時對外部服務回呼 URL 進行完整的參數審查。

URL 解析的運作原理

解析器依照 WHATWG URL 標準運作,與瀏覽器處理任何 href 時所使用的演算法相同。我們將字串傳入原生 URL 建構子,再以屬性方式讀回每個組成部分。

  1. 驗證輸入. 空字串會顯示空輸入提示。否則,文字將傳入 new URL(text);若發生 TypeError,表示該字串不是有效的絕對 URL。
  2. 讀取結構性組成部分. 我們從 URL 物件讀取 protocolusernamepasswordhosthostnameportpathnamesearchhashorigin,每個部分單獨顯示於一行,方便個別複製。
  3. 遍歷查詢字串. 我們遍歷 url.searchParams.entries(),每個鍵對應一列表格。原始值與 decodeURIComponent(value) 並排顯示,使百分號編碼的內容(空格、加號、Unicode)可直接閱讀。
  4. 依需求重建. 編輯任何欄位、刪除某行,或新增參數,再點擊「重建 URL」。本工具會依您的編輯重新建構 URL 物件,並將結果寫回輸入框。
  5. 即時模式. 切換即時模式後,每次按鍵都會以 150 毫秒防抖重新解析 URL。適合從日誌中逐段貼上片段時即時回饋。

為何在瀏覽器中解析 URL

  • 資料不離開分頁. URL 中可能含有 token、session ID、OAuth state 及已簽署的查詢參數,這些資訊不應交給第三方服務保存。本解析器使用瀏覽器本地已運行的 URL 演算法——無需上傳,無需網路呼叫。
  • 與程式碼所見結果一致. Node.js、Deno、現代瀏覽器及 Cloudflare Workers 均採用 WHATWG URL 實作。在此檢查 URL,可得到與正式環境中 new URL(input) 呼叫完全相同的組成部分拆解結果。
  • 以人類可讀方式呈現查詢字串. 原始值與解碼值並排顯示,因此 q=hello%20world 這組鍵值對會同時顯示傳輸中的位元組與可讀的 hello world,無需手動進行 URL 解碼。
  • 來回編輯. 移除追蹤參數、修正路徑中的錯字、更改連接埠——再重建 URL。輸出結果會再次通過 URL 建構子,任何無效內容都會在您複製之前浮現。

常見應用場景

URL 解析廣泛出現於開發者、資安及分析的日常工作中,適用於任何 URL 不只是連結的情境。

  • API 端點偵錯:在發送 curl 或 Postman 請求前,確認基礎 URL、路徑及查詢參數。
  • 追蹤參數稽查:列出登陸頁 URL 上所有 UTM、gclid、fbclid 或行銷活動鍵,並決定保留哪些。
  • 驗證聯盟及合作夥伴連結:貼上深層連結,在發布前確認目的主機與內嵌的重導目標。

實際範例

https://example.com/search?q=hello%20world&lang=en 貼入輸入框。協定讀取為 https:,主機名稱讀取為 example.com,路徑名稱讀取為 /search,搜尋字串讀取為 ?q=hello%20world&lang=en。查詢表格顯示兩行:q 的原始值為 hello%20world,解碼值為 hello worldlang 的原始值與解碼值均為 en。點擊 lang 行的「移除」,再點擊「重建 URL」,輸入框會更新為 https://example.com/search?q=hello%20world

FAQ

什麼是 URL 解析器?

URL 解析器接收 URL 字串,並將其拆解為具名組成部分:協定(https)、使用者資訊(使用者名稱、密碼)、主機(主機名稱加選用連接埠)、路徑、查詢字串及片段。它也會解碼每個查詢參數,使百分號編碼的值(如 %20 表示空格)變為可讀。本解析器採用 WHATWG URL 標準,與您的瀏覽器載入網頁時所用的標準相同。

主機(host)與主機名稱(hostname)有什麼差別?

主機名稱僅為網域(或 IP 位址)——對於 example.com:8080,主機名稱是 example.com。主機則是主機名稱加上非預設連接埠時的連接埠,因此相同的 URL 其主機為 example.com:8080。對於使用預設連接埠的 URL(https 的 443、http 的 80),主機與主機名稱完全相同。

解碼是自動進行的嗎?

結構性組成部分(協定、主機名稱、連接埠、路徑名稱)直接從 URL 物件讀取,無需額外解碼——URL 建構子已對其進行正規化。查詢值會顯示兩次:一次是出現在 search 中的原始百分號編碼字串,一次是由 decodeURIComponent 產生的解碼值。這樣您可以複製下游工具所需的任一形式。

我可以編輯並重建 URL 嗎?

可以。每個部分欄位及每個查詢參數欄位均可編輯。使用「新增」和「移除」按鈕增減查詢行,再點擊「從各部分重建 URL」。本工具會將您的編輯再次傳入 URL 建構子,並將結果寫入輸入框——若編輯結果產生無效的 URL,您將看到與在自己的程式碼中呼叫 new URL() 時相同的錯誤訊息。

URL 解析是每位 Web 開發者每週都會執行的小任務。在瀏覽器中以正式環境程式碼所用的同一演算法進行解析,既快速又能確保資料留在本機。