一款對初學者友善的 Cookie 轉 JSON 轉換器,會讀取 HTTP Cookie 請求標頭的確切文字 —— 像是 SID=abc; lang=en-US 這種以分號加一個空格區隔的配對 —— 並將其轉為一個扁平 JSON 物件,讓你可以閱讀、排序、記錄、編輯其中的鍵與字串值,無需手動剖析。同一個轉換器也能反向執行,接收一個經過檢視、值皆為字串的 JSON 物件,再次產生乾淨的 Cookie: 請求值,讓你在扁平標頭行與結構化對應表之間轉換,而不會遺漏任何一個合法值的字元。所有轉換都在你的瀏覽器分頁中完成,不會上傳、不會儲存任何資料,工具本身也絕不會讀取 document.cookie。對於剛接觸 HTTP 標頭的開發者而言,這是檢視 Cookie 欄位內容、以結構化形式呈現、複製到設定檔、與先前擷取版本比對差異,或在編輯後重建內容的最快方式。
一旦開始觀察 HTTP 流量,Cookie 欄位看起來會有種騙人的簡單感。它只有一行文字,但這一行所遵循的規則比大多數人預期的更為嚴謹。多一個空格、少一個分隔符,或一個經百分號編碼的斜線,都可能讓原本可用的標頭變成剖析器拒絕的內容。一個遵循嚴格 RFC 6265 請求規範的轉換器可以消除這種試誤:它要不是照你寫的內容原樣接受,就是精確地告訴你違反了哪一條規則。

Cookie 請求標頭實際上包含了什麼
瀏覽器每次與先前設定過一個或多個 Cookie 的伺服器通訊時,就會送出 Cookie 欄位。其值是一系列以 ; 連接的 name=value 配對 —— 一個分號後緊接著正好一個 ASCII 空格。每個名稱都是一個 RFC 權杖(token),由字母、數字與一小組標點構成,內部不可包含空格或逗號。每個值是一段未加引號的合法 cookie 八位元序列,或是用雙引號包住同樣的序列。等號周圍的空格不屬於格式的一部分。結尾的分號、空配對,或少了一個分隔符的空格,都會讓這一行失效。
請求欄位不攜帶的內容同樣重要。Cookie 標頭不會揭露 Cookie 的到期時間、設定它的主機、所綁定的路徑、是否僅限 Secure、JavaScript 是否能讀取。那些屬性 —— Domain、Path、Expires、Max-Age、Secure、HttpOnly、SameSite、Partitioned、Priority,以及任何擴充前綴 —— 都屬於 Set-Cookie 回應標頭,絕不會出現在 Cookie 請求標頭中。由於初學者常誤貼 Set-Cookie 整行,嚴格的轉換器會以明確的錯誤訊息拒絕該輸入,而不是靜默地產出誤導的 JSON。
| 標頭欄位 | 方向 | 是否攜帶 Domain、Path、Expires、Secure、HttpOnly 等屬性? | 是否由 Cookie 轉 JSON Converter 處理? |
|---|---|---|---|
| Cookie | 用戶端到伺服器(請求) | 否 —— 只有 name=value 配對 | 是 |
| Set-Cookie | 伺服器到用戶端(回應) | 是 —— 屬性由伺服器設定 | 否,會以明確錯誤拒絕 |
為什麼本機轉換器勝過複製貼上除錯
當你從瀏覽器的 DevTools 複製 Cookie 欄位時,通常會看到像 SID=abc123; lang=en-US; cart=eyJ= 這樣的扁平一行,沒有明顯的結構。兩三組配對用肉眼讀還行,但一旦有十到二十組就會痛苦萬分,重新輸入時也很容易打錯。結構化的 JSON 檢視能讓你依字母順序掃描欄位、與先前擷取版本比對差異,或在沒有引號麻煩的情況下把某個值交給同事。
使用本機轉換器的另一個理由是隱私。Cookie 標頭經常承載憑證,將其送往第三方服務是真實存在的風險。Cookie to JSON Converter 會在目前瀏覽器分頁中處理你貼上的文字,不會回傳任何網路。輸出會出現在一個唯讀區域,你必須手動複製,剪貼簿動作是非同步且受到防護的,即使在你編輯輸入或切換方向後,也不會有過期的提示靜默地恢復「已複製」標記。
三步驟將 Cookie 標頭轉為 JSON
第一個方向 Cookie → JSON,是大多數初學者最需要的。請依照以下步驟,使用 Cookie to JSON Converter 操作。
- 開啟工具,選擇 Cookie to JSON 模式,貼上像是 SID=abc; lang=en-US 這樣的純值,或是同一行但前綴為 Cookie: 後接一個冒號加一個空格的內容。為求方便,貼上內容外圍的空白會被忽略,依據 RFC 6265 處理。
- 按下 Convert。工具會以不區分大小寫的方式驗證欄位名稱前綴,在每組配對的第一個 = 處切分,將每個名稱視為 RFC 權杖檢查,並依 cookie-octet 規範驗證每個值。百分號序列不會進行 URL 解碼 —— %2F 會保留為百分號、二、F 三個字元 —— 第一個等號之後額外的等號仍屬於值的一部分,因此 Base64 填補字符、簽章權杖、URL 風格的查詢字串都能完整保留。
- 在唯讀輸出區中讀取 JSON 對應表。對照配對數量計數行檢查配對數,然後使用 Copy 將完整字串放上剪貼簿。如果內容有誤,先前的結果會被移除,並由單一錯誤訊息取代;修正輸入後再試一次。
將 JSON 轉回 Cookie 請求值
反向方向 JSON → Cookie,在你編輯過擷取到的 JSON 對應表,需要重新建構標頭行以便在 curl、Postman 或測試工具中重送時會用到。
- 將工具切到 JSON to Cookie。貼上剛好一個非空的 JSON 物件,其中每個屬性值都必須是字串。數字、布林值、null、陣列、巢狀物件、註解與結尾逗號都會被拒絕。
- 轉換器在序列化前會進行可察覺重複的詞彙掃描,因此兩個解碼後相同的鍵 —— 例如 a 與 \u0061 —— 會被攔截並回報為重複,即使一般的 JSON.parse 只會靜默地保留其中之一。名為 __proto__、prototype 或 constructor 的鍵會被拒絕,作為縱深防禦的界線。
- 按下 Convert,然後檢視產生的 Cookie: 值。配對之間以精確的 ; 分隔符連接,解碼後的值會再次以 cookie-values 規範驗證,並保留 JSON 文字中原始的鍵順序。複製該行並貼到你要使用的用戶端中。
嚴格剖析器會抓到的常見初學者錯誤
有幾種在文字編輯器中看似無害的模式,會被嚴格剖析器明確拒絕。等號周圍出現空格,例如 SID = 123,因為破壞了配對界線而失敗。SID=123;;lang=en 因為第二個分隔符沒有對應值,而空配對並不合法而失敗。Cookie : SID=123 因為冒號必須緊貼欄位名稱而中間不得有空格而失敗。兩個解碼後名稱相同的配對,例如 SID=1; SID=2,因為 JSON 物件無法在靜默選擇優勝者的情況下保留兩個同名成員,本工具拒絕這樣做而失敗。貼上 Set-Cookie: 整行也會失敗,因為工具僅處理請求標頭 —— Set-Cookie 行上的屬性屬於伺服器回應,並非瀏覽器回送的內容。
嚴格是一項特性,而非摩擦。如果轉換器靜默地修剪空格、解碼百分號序列,或將兩個 SID= 配對合併為一,你就會拿到一個看似成功、實際上與瀏覽器送出的內容不符的轉換結果。改為拒絕輸入,迫使你修正來源,如此產生的 JSON 才能保證可往返轉換回完全相同的 Cookie 標頭行。
限制、容量預算,以及何時應改用其他工具
轉換器將輸入上限精確定為 100,000 個 UTF-16 字碼單位,完整輸出上限精確定為 200,000 個字碼單位,任一邊界再超過一個單位都會被拒絕。它不使用 maxLength 來靜默中止你的輸入,也絕不會切片、取樣或部分回傳輸入。任何編輯或方向切換都會清除先前的輸出、錯誤、配對數與剪貼簿狀態,確保你看到的結果與產生它的輸入保持同步。
當你需要除錯 Cookie 請求欄位、將擷取到的字串配對移轉到 JSON,或從檢視過的 JSON 字串重建請求標頭行時,本工具是正確的選擇。當你需要檢查 document.cookie、產生 Set-Cookie 回應、解碼應用程式的 session 格式、判斷 Cookie 是否為 Secure,或在分享前清理憑證時,它並不合用 —— Cookie 標頭經常承載有效的 session 密鑰,你應該輪換任何已外洩的值。對於泛用的 JSON 工作,JSON Formatter、JSON Validator 與 JSON Minifier 可涵蓋超出 Cookie 規範的場景。若是不相關的標記清理,使用 HTML Cleaner 才是合適的工具。