基於瀏器的 Cookie 轉 JSON 轉換器可以完全取代任何遠端 cookie 轉換 API,因為它會解析 RFC 6265 請求配對,並將其重建為扁平的 JSON 字串對應,而無須將標頭值傳出你的電腦。大多數 cookie 轉換 API 的運作方式是透過 HTTPS 接收 HTTP Cookie 請求標頭、在伺服器上執行解析,再透過網路回傳 JSON 或重建後的 Cookie 字串。這種合約聽起來無害,但每次 API 呼叫都代表一次新的信任決策:API 的操作者得以讀取你的即時工作階段識別碼、已簽署的權杖,以及任何以百分比編碼內嵌於 cookie 值中的祕密。本地轉換器則反轉了這個模式。轉換完全在當前的瀏覽器分頁中執行,輸出停留在永遠不會被發送到任何地方的唯讀區域,唯一的限制是嚴格的 RFC 6265 請求設定檔,加上 100,000 個程式碼單位的輸入上限。你可以獲得相同的 JSON 結構與相同的重建 Cookie 值,但承載你工作階段的位元組永遠不會離開這個頁面。這就是 cookie 轉換 API 與緊鄰 DevTools 運作的 cookie 轉換器之間最實際的差異。

為什麼 Cookie 轉換 API 通常不適合用於除錯
HTTP Cookie 請求標頭是從瀏覽器複製出來時最敏感的內容之一。它承載了工作階段識別碼、已簽署的 CSRF 權杖,以及附加於該頁面的任何第三方追蹤 cookie 內容。將這行內容交給遠端 API,代表必須將這些位元組託付給陌生人的伺服器,即使該 API 承諾在回傳時將其丟棄。服務操作者會更換、保留政策會漂移,而 HTTP 日誌的存活時間往往比描述它們的文件更長。
除了隱私成本之外,遠端 API 還會增加與實際轉換無關的摩擦。你必須等候來回傳輸、在冗長的除錯過程中撞到速率限制、在超過免費額度後付費,且服務在最糟糕的時機離線。當 API 拒絕一組不常見的配對時,錯誤訊息會依提供者解析器的邏輯呈現,可能會以你稍後才會察覺的方式將輸入正規化。完全在瀏覽器中執行的 cookie 轉換器沒有這些成本,並讓你保有在筆記中記下的確切邊界行為。
本地 Cookie 轉 JSON 轉換器的實際作用
Cookie 轉 JSON 轉換器只負責一項工作:將 HTTP Cookie 請求標頭的值轉為扁平的 JSON 字串對應,再將該扁平 JSON 物件轉回 Cookie 請求標頭值。兩個方向都在同一個頁面中執行,並採用嚴格的 RFC 6265 請求序列化設定檔,因此 Cookie 轉 JSON 與 JSON 轉 Cookie 的規則並無差別。此工具僅處理 Cookie 請求標頭。它不會解析 Set-Cookie 回應標頭,也不會將 Domain、Path、Expires、Max-Age、Secure、HttpOnly、SameSite、Partitioned、Priority 或擴充屬性視為請求 cookie,因為這些屬性是由伺服器在 Set-Cookie 中提供,並不會由瀏器在 Cookie 欄位中回傳。因此,若貼上帶有 Set-Cookie: 前綴的內容,會直接產生明確的錯誤,而不是誤導性的 JSON。
所有處理都在當前的瀏覽器分頁中進行。它不會從 document.cookie 讀取任何 cookie、不會修改瀏覽器的 cookie 存放區,也不會發出任何 HTTP 請求,因此即使網路環境充滿敵意,也沒有任何東西可以外洩。輸出為純文字,置於永遠不會被發送到任何地方的唯讀區域;剪貼簿寫入採用非同步並附帶世代防護,因此在你編輯或切換方向後,較舊的權限回應無法還原成「已複製」狀態。
Cookie 轉換 API 與本地瀏器轉換器比較
| 行為 | 遠端 cookie 轉換 API | 本地 Cookie 轉 JSON 轉換器 |
|---|---|---|
| 解析執行位置 | 提供者的 HTTP 伺服器 | 你當前的瀏器分頁 |
| 每次呼叫的網路往返 | 有 | 無 |
| 工作階段資料外洩風險 | 完整 Cookie 值透過 HTTPS 傳送 | 標頭永遠不會離開此頁面 |
| 離線可用性 | 需要網路 | 首次載入後即可使用 |
| 速率或配額限制 | 由提供者定義 | 工具本身無此限制 |
| 重複配對處理 | 通常為先到先得或後到後得 | 以明確錯誤拒絕 |
| Set-Cookie 回應解析 | 有時會被悄悄納入 | 以格式錯誤輸入拒絕 |
在本地將 Cookie 請求標頭轉為 JSON
正向轉換接受一個 Cookie 請求值,並回傳一個扁平 JSON 物件,其鍵為 cookie 名稱,值為瀏覽器序列化後的原始 cookie 字串。介面刻意保持精簡,以便日後閱讀輸出時不會產生任何模稜兩可之處。
- 在你擷取 Cookie 標頭的同一個瀏覽器分頁中開啟 Cookie 轉 JSON 轉換器,讓該值不需要離開該頁面。
- 選擇 Cookie 轉 JSON 方向,並貼上嚴格的裸 Cookie 請求值(例如 SID=abc; lang=en-US),或貼上帶有確切 Cookie: 前綴的完整欄位。貼上內容最外側的 ASCII 空格會被忽略。
- 點選「轉換」。解析器會驗證每一組配對,阻擋原型污染風險鍵,並拒絕重複名稱、格式錯誤的分隔符號與空白配對,而不是默默重寫它們。
- 檢視唯讀輸出、確認每個 cookie 名稱所保留的字串,並複製完整的 JSON 對應。編輯輸入或切換方向時,會清除先前的輸出、錯誤、配對計數與剪貼簿狀態,避免陳舊的結果跨次執行洩漏。
如果你想要完整逐步示範往返工作流程,包括 JSON 轉 Cookie 方向,以及嚴格分隔符號規則對真實標頭的影響,請參閱在瀏覽器中將 Cookie 標頭轉為 JSON 並轉回指南。
將 JSON 轉回 Cookie 請求標頭值
反向轉換是使用遠端 API 最難做對的部分,因為重建後的字串必須符合伺服器預期的精確序列化格式。本地轉換器接受一個非空 JSON 物件,其解碼後的鍵與字串值符合 Cookie 設定檔,並以「分號後接一個 ASCII 空格」連接通過驗證的配對。它不會對禁用字元進行百分比編碼、不會自動加上引號、不會移除引號、不會排序成員、不會推斷路徑,也不會產生 Set-Cookie 屬性,因此輸出僅反映你放進 JSON 物件中的內容。
JSON 字串的跳脫序列會在 Cookie 驗證前先行解碼,因此跳脫後的換行字元會驗證失敗,因為其解碼後的控制字元並非 cookie 值資料。內部掃描會在序列化前偵測重複的解碼鍵,因此像 a 與 \u0061 這類跳脫拼寫會被視為同一名稱。成員順序會依詞法配對掃描保留,以利輸出使用,但 RFC 6265 的 cookie 語意不應依賴序列化順序,且伺服器仍可能依此轉換器未知的應用程式特定規則來解讀 cookie 值。
防止悄悄覆寫的嚴格驗證規則
對於 cookie 轉換 API 的替代方案而言,最重要的合約在於此工具有哪些事會拒絕執行。本地轉換器會拒絕而非正規化,因為解析器中的悄悄修補會隱藏錯誤,並產生看似正確、實際上卻與原始位元組不一致的往返結果。
| 輸入模式 | 結果 | 原因 |
|---|---|---|
| SID=abc;lang=en-US | 拒絕 | 分號後缺少分隔用的空格 |
| SID =abc; lang=en-US | 拒絕 | 等號前的空格會破壞配對邊界 |
| SID=abc;; lang=en-US | 拒絕 | 雙重分隔符號導致空白配對 |
| SID=abc; SID=xyz | 拒絕 | 區分大小寫後名稱重複;先到先得會造成歧義 |
| {"__proto__": "x"} | 拒絕 | 雙向皆設有原型污染防線 |
| token=abc%2Fdef | 接受為 "token":"abc%2Fdef" | 百分比序列不會被解碼 |
| signed=eyJ==.sig | 接受為 "signed":"eyJ==.sig" | 僅第一個等號具結構意義 |
除了配對設定檔之外,轉換器還強制設定 100,000 個 UTF-16 程式碼單位的輸入上限,以及 200,000 個程式碼單位的輸出上限。剛好等於上限的值會被接受,超過一個單位即會被拒絕,因此介面絕不會悄悄截斷、上限取樣或部分回傳輸入。零或無效的輸出長度會被拒絕;任何錯誤都會在發布訊息前先移除前一次的成功結果,以確保唯讀輸出區域與轉換器願意擔保的內容保持一致。
何時適合使用此工具,以及何時應改用其他工具
當你在除錯 HTTP Cookie 請求欄位、將已審閱的字串對應轉為 JSON 以利日誌記錄或測試固定資料,或從已檢查過的 JSON 字串產生請求標頭值時,Cookie 轉 JSON 轉換器是正確的選擇。在無法將取到的標頭傳出機器的情況下,例如在隔離網路環境中工作,或當 Cookie 欄位承載你不希望被第三方記錄的正式環境工作階段權杖時,它也是乾淨俐落的選擇。
當你實際需要解析 Set-Cookie 回應、檢查瀏覽器儲存空間、判斷 cookie 是否為 Secure 或 HttpOnly,或嘗試在分享前清除憑據時,它就不是合適的選擇。這些屬性根本不存在於 Cookie 請求標頭中。若需要超出本工具範圍的一般 JSON 清理工作,你可以交由 JSON Formatter、JSON Validator 或 JSON Minifier 處理。Cookie 標頭通常含有即時的工作階段祕密,請務必妥善保密,並輪替任何已外洩的憑據。
如果你正在權衡各種選項,Cookie 轉換器批次處理:在本地將嚴格配對轉為 JSON對此有詳細說明。