Cookie 請求標頭本身就是一個批次容器:瀏覽器傳送給主機的每一組 name=value 配對都位於同一行,並以完全符合 "; " 的分隔符隔開,因此單一次的轉換過程就能處理整組配對,而不是一次只處理一個 cookie。Cookie 轉 JSON 轉換器便是圍繞著這種單行結構與嚴格的 RFC 6265 請求設定檔所打造,這正是大多數開發者在搜尋 cookie 轉換器批次工作流程時所指的意思。它會將一段貼上的標頭值(可選擇性地加上 Cookie: 欄位名稱前綴)轉成一個扁平 JSON 物件,其中的每個鍵與值都是字串,並能在反方向從審核過的 JSON 重建回相同的標頭值。由於剖析器在每一對配對中只在第一個等號處切割,因此含有額外 "=" 字元的值(例如 Base64 填補字元、簽章 token 或查詢字串)都能保持完整,而不會被靜默解碼或重寫。輸出為唯讀區域中的純文字,轉換完全在當前瀏覽器分頁中執行,過程中不會將任何資料傳送給 Lizely 或任何第三方。

「批次」在 Cookie 請求標頭中的意義
瀏器並不會為每個 cookie 各自傳送一個 HTTP 標頭。當使用者代理程式將狀態回傳給伺服器時,會將該主機的所有 name=value 配對打包進單一 Cookie 請求欄位中,每對配對之間以完全 "; " 兩個字元分隔。這就是為什麼所謂的「批次」cookie 轉換器實際上只是套用在一行文字上的一個嚴格剖析器,而 Cookie 轉 JSON 轉換器只需一次貼上就能接受整個欄位,無論是兩對或二十對配對,所需的操作都相同。
典型的瀏器標頭可能看起來像 SID=abc; lang=en-US; cart=42,或加上明確的欄位名稱前綴,例如 Cookie: SID=abc; lang=en-US; cart=42。為了使用方便,會自動去除整行外圍的 ASCII 空白,但內部分隔符必須逐字元保持為 "; "。如果帶有欄位名稱,則 Cookie 後必須緊接冒號;Cookie : 屬於格式錯誤,將被拒絕。欄位名稱本身的比對不區分大小寫,因此 COOKIE:a=1 可被接受,但配對內部的名稱比對仍區分大小寫,所以 SID 與 sid 會被視為兩個不同的鍵。空值(例如 preference=)是有效的;但空名稱或缺少等號的配對則會失敗。
嚴格 Cookie 轉換器與寬鬆 Cookie 轉換器的差異
許多臨時拼湊的 cookie 剖析器會默默修正格式錯誤的輸入。結尾的分號會消失,雙重空白會被壓縮成一個,等號兩側不慎出現的空白會被去除,重複的名稱則僅保留最後一個值。這種行為在示範程式碼中或許方便,但在正式環境中卻十分危險,因為輸出將不再與瀏覽器實際傳送的內容一致。Cookie 轉 JSON 轉換器則遵循相反的原則:任何偏離嚴格請求設定檔的情況都會產生明確的錯誤,讓開發者察覺到格式錯誤的輸入,而不是繼承一個猜測的結果,這與 RFC 6265 中所述的剖析規則一致。
| 設定檔規則 | 本工具的嚴格行為 | 常見的寬鬆行為 |
|---|---|---|
| 配對分隔符 | 必須為 "; "(分號加一個 ASCII 空白) | 接受 ";", "; " 或任何空白字元 |
| "=" 周圍的空白 | 視為格式錯誤而拒絕 | 默默去除 |
| 空配對(";;") | 拒絕 | 跳過或正規化 |
| 結尾分號 | 拒絕 | 於輸出前去除 |
| 重複名稱 | 明確錯誤並拒絕 | 默默採用最後一個值 |
| 百分比序列 | 逐字保留為 "%2F" 等形式 | 未經警告即進行 URL 解碼 |
| 值內含等號 | 僅第一個 "=" 具結構意義 | 可能會在後續的 "=" 處切分 |
| Set-Cookie 前綴 | 明確錯誤,不產生輸出 | 被誤剖析為請求 cookie |
反向轉換時同樣會套用此嚴格設定檔。當您將扁平 JSON 物件反轉回標頭值時,工具會解碼字串跳脫以還原原始字元,但不會進行 URL 編碼、正規化、排序成員,或自行產生 Set-Cookie 屬性。為方便輸出,會保留詞法掃描所得的成員順序,雖然 cookie 本身並不帶有語意順序,伺服器可依據本轉換器無從得知的應用程式專屬規則來解讀這些值。
在您的瀏覽器中將批次 Cookie 標頭轉為 JSON
- 在新分頁中開啟 Cookie 轉 JSON 轉換器。
- 選擇「Cookie 轉 JSON」方向。
- 貼上裸標頭值(例如 SID=abc; lang=en-US; cart=42)或同一行加上明確的 Cookie: 前綴。為求方便,會自動去除貼上內容外圍的 ASCII 空白。
- 點擊 Convert。每對配對僅在其第一個 "=" 處切分,名稱會依據 RFC token 設定檔進行檢查,值則會依據 cookie-octet 或以 DQUOTE 包覆的 cookie-octet 設定檔進行檢查,並在建構任何對映前先拒絕重複或具有原型風險的名稱。
- 檢視唯讀輸出。每個保留的字串會連同配對總數一併顯示。零長度輸出或任何驗證失敗,會以明確的錯誤取代先前的結果,而不是附加於其後。
- 將完整的本機輸出複製到剪貼簿。若瀏覽器拒絕剪貼簿存取,完整輸出仍會保持可見,您可手動選取。
轉換完全在您的當前分頁中執行,因此即使標頭內含工作階段秘密,也無須離開此頁面。如需了解相關的雙向模式,在瀏覽器中將 Cookie 標頭轉為 JSON 再轉回指南會逐步示範同一配對的雙向操作,並說明如何將此轉換器整合進本機除錯流程。
從審核過的 JSON 重建 Cookie 標頭
- 開啟 Cookie 轉 JSON 轉換器,並切換至「JSON 轉 Cookie」模式。
- 貼上恰好一個非空 JSON 物件,其所有值均為字串,例如 {"SID":"abc","lang":"en-US","cart":"42"}。數字、布林值、null、陣列、巢狀物件、註解、結尾逗號以及物件後的文字,在建構任何標頭之前都會被拒絕。
- 點擊 Convert。工具會執行具備重複偵測的詞法掃描,因此即使是 "a" 與 "\u0061" 這類不同跳脫寫法,仍會被辨識為同一個鍵,雖然普通的 JSON.parse 會默默只保留其中一個。
- 每個解碼後的鍵會以 RFC token 進行驗證,每個解碼後的值則會以可接受的 cookie-value 進行驗證。經跳脫的換行字元會驗證失敗,因為其解碼後的控制字元並非 cookie-value 資料。
- 檢視重建後的標頭值。可接受的配對會依詞法掃描所遇到的順序,以完全 "; " 分隔符連接。
- 複製結果。編輯輸入或切換方向會清除先前的輸出、先前的錯誤、配對計數、剪貼簿狀態以及任何剪貼簿計時器,因此輸入變更後不會再出現殘留的「已複製」訊息。
限制、界線與錯誤行為
嚴格設定檔透過一組小型且固定的界線強制執行,這些界線會決定請求是否能被轉換。任何超出界線的內容都會被拒絕;工具絕不會切割、上限、取樣或部分地傳回輸入,且零或無效的輸出長度會在任何唯讀文字發佈之前先被拒絕。
| 界線 | 精確限制或規則 |
|---|---|
| 輸入長度 | 恰好 100,000 個 UTF-16 程式碼單位;超出單位會被拒絕 |
| 輸出長度 | 恰好 200,000 個程式碼單位;零或無效長度會被拒絕 |
| 靜默截斷 | 無;不使用 maxLength 來防止輸入 |
| Cookie 轉 JSON 輸入 | 僅接受裸值或精確的 Cookie: 欄位名稱前綴 |
| Set-Cookie 輸入 | 明確錯誤;不會產生誤導性的 JSON |
| JSON 轉 Cookie 輸入 | 一個非空 JSON 物件,僅限字串值 |
| 封鎖名稱 | 雙向皆拒絕 __proto__、prototype、constructor |
| 重複名稱 | 區分大小寫拒絕,無 first-wins 或 last-wins |
| 網路使用 | 無;不讀取 document.cookie,無 HTTP 請求,無上傳 |
百分比序列在任何階段皆不會進行 URL 解碼:%2F 會保持為 percent、two 與 F 三個字元。包圍引號值的引號字元在 JSON 與反向轉換中都會保留,因為它們屬於本工具用於序列化 Cookie 欄位值的一部分。正向轉換所用的內部對映採用 null 原型,因此 __proto__、prototype 與 constructor 會被作為防禦深度的界線加以封鎖,以避免下游發生原型污染,即使底層對映本身並無原型可洩漏。
何時適合使用 Cookie 轉換器(以及何時不適合)
當您在線上除錯 Cookie 請求欄位、將審核過的字串對映轉為 JSON 以供 HTTP 用戶端或伺服器記錄使用,或在不接觸真實覽器的情況下從審核過的 JSON 字串產生請求標頭值時,請使用 Cookie 轉 JSON 轉換器。當您希望在將擷取到的標頭轉發至其他地方之前,依據嚴格請求設定檔對其進行驗證時,它也十分合適,因為對格式錯誤輸入所產生的明確錯誤,正是您在審核過程中所需要的那種摩擦。
請勿將其用於檢查瀏覽器 cookie 存放區、建構 Set-Cookie 回應標頭、保存 Domain、Path、Expires、Max-Age、Secure、HttpOnly、SameSite、Partitioned、Priority 等屬性或擴充名稱、解碼應用程式的工作階段格式、判斷 cookie 是否安全,或是在共用前清理憑證。Cookie 請求欄位本質上無法透露 cookie 的到期時間、允許的主機、允許的路徑、僅限安全連線狀態或 HttpOnly 狀態,因為這些屬性是由伺服器在 Set-Cookie 中設定,瀏覽器絕不會將其回傳。若您需要將這些屬性納入可攜式檔案的工作流程,將 Cookie JSON 轉為 Netscape 指南涵蓋了獨立範疇的 Netscape 格式。若需一般的 JSON 清理作業,請使用 JSON Formatter、JSON Validator 或 JSON Minifier;若需無關的標記清理作業,請使用 HTML Cleaner。
Cookie 標頭經常帶有使用中的工作階段 token。請將每一段貼上的值視為憑證處理:將其保留在瀏覽器分頁內,避免貼入共用記錄,並輪替任何已曝光的工作階段。嚴格設定檔的設計旨在顯示格式錯誤的輸入,而不是將其隱藏,因此您看到的錯誤訊息,通常就是您貼上的內容與瀏器實際傳送內容之間的差異所在。