logo
GeekFormat

ตัวแยกคุกกี้

Nameค่าAction
Paste content above to see parsed results

Netscape cookie files can be used with curl -b; if Domain is missing, a placeholder domain is used. Replace it before import.

หน้าเดียวสำหรับทำความเข้าใจทั้ง Cookie request header และ Set-Cookie response header ระหว่างการดีบัก login, API และเบราว์เซอร์

คำแนะนำที่เกี่ยวข้อง

ตัวแยกคุกกี้คืออะไร?

ตัวแยกคุกกี้จะแปลงข้อความ cookie ที่ได้จากเบราว์เซอร์ โค้ด frontend เครื่องมือ API หรือ response จากเซิร์ฟเวอร์ให้เป็นผลลัพธ์แบบมีโครงสร้าง เป้าหมายไม่ใช่การอธิบายทฤษฎี cookie แต่เป็นการตอบคำถามจริงในการดีบัก เช่น request ส่ง cookie อะไรไปบ้าง มีแอตทริบิวต์อะไรใน Set-Cookie ทำไมเบราว์เซอร์ถึงปฏิเสธ cookie และจะนำผลลัพธ์ไปใช้ต่ออย่างไร

ข้อผิดพลาดที่พบบ่อยคือมองว่า document.cookie, Cookie request header และ Set-Cookie response header เป็น input แบบเดียวกัน ทั้งที่จริงไม่ใช่ document.cookie และ request cookie เหมาะกับการดูเป็นคู่ name=value แบบแบน ส่วน Set-Cookie เป็น response header ที่มีแอตทริบิวต์อย่าง SameSite, Path, Domain, Expires, Max-Age, HttpOnly และ Secure

หน้านี้เหมาะเป็นจุดเริ่มต้นเมื่อคุณยังไม่แน่ใจว่าข้อความ cookie ที่มีอยู่เป็นประเภทไหน หรือเมื่อคุณต้องการเทียบสิ่งที่ request ส่งออกไปกับสิ่งที่เซิร์ฟเวอร์ตอบกลับมา

ต่างจากเครื่องมือพื้นฐานที่แค่ split(;) เครื่องมือนี้เก็บค่าดิบ แสดงค่าที่ decode แล้ว แสดงตารางแอตทริบิวต์ ส่งออก JSON และ Netscape Cookie File และคงรายการ cookie ที่ซ้ำไว้ให้คุณใช้เป็นเบาะแส

ถ้าต้องการ workflow ที่เน้น request header มากขึ้น ให้ใช้ HTTP Cookie Parser ถ้าต้องการวิเคราะห์ว่าเบราว์เซอร์ปฏิเสธ cookie เพราะอะไรหรือ Set-Cookie ตั้งค่าไม่ถูกหรือไม่ ให้ใช้ Set-Cookie Parser

กรณีการใช้งาน

  • นำ string document.cookie จาก DevTools หรือ log มาแยกเป็นรายการ cookie เดี่ยวอย่างรวดเร็ว
  • วาง Set-Cookie หลายบรรทัดจาก Network panel เพื่อดูว่าเบราว์เซอร์ปฏิเสธ cookie เพราะอะไร
  • ตรวจปัญหา session หาย, cookie ไม่ถูกส่งใน cross-site request และความขัดแย้งจากชื่อซ้ำ
  • ถอดรหัสค่า cookie ที่ถูก URL-encode เพื่ออ่านเนื้อหาจริง
  • แปลงผลลัพธ์การ parse เป็น JSON สำหรับ script, issue, docs หรือ test case
  • สร้างข้อความ Netscape Cookie File สำหรับ curl, crawler หรือเครื่องมือแบบ import
  • ใช้เป็นหน้ากลางสำหรับ triage ปัญหา cookie ระหว่างการดีบัก frontend, QA, ops และ crawler

วิธีการใช้งาน

  1. ระบุ source ก่อน: ใช้โหมด Cookie string สำหรับ document.cookie, request headers หรือ logs และใช้โหมด Set-Cookie สำหรับ response headers
  2. วางข้อความ cookie ดิบลงในช่อง input แล้วเครื่องมือจะแยกชื่อ ค่า และแอตทริบิวต์ให้อัตโนมัติ
  3. เปิดค่าที่ URL-decode แล้ว กรอง field สำคัญ และตรวจคำเตือนชื่อซ้ำหรือตารางแอตทริบิวต์ตามต้องการ
  4. คัดลอกข้อความที่ normalize แล้ว export เป็น JSON หรือสร้าง Netscape Cookie File สำหรับขั้นตอนถัดไป

คุณสมบัติ

  • โหมดคู่สำหรับ document.cookie / Cookie request header และ Set-Cookie response header แบบหลายบรรทัด
  • แยกชื่อ ค่า และแอตทริบิวต์อัตโนมัติ พร้อมแสดงค่าดิบ ค่า URL-decoded และ field ของ SameSite / Secure / HttpOnly / Path / Domain / Expires / Max-Age
  • แจ้งเตือนชื่อซ้ำเพื่อช่วยหา Path conflict, scope ที่ทับซ้อน และพฤติกรรม session ที่ไม่เสถียร
  • ส่งออก JSON แบบมีโครงสร้างสำหรับสคริปต์ การดีบัก API และการบันทึกปัญหาแบบทำซ้ำได้
  • สร้าง Netscape Cookie File สำหรับ curl และเครื่องมือ crawler
  • ประมวลผลในเครื่องเพื่อให้ Session, Token และ login cookie อยู่ในอุปกรณ์ของคุณ
  • แยกการดีบัก cookie ฝั่ง request และ response อย่างชัดเจน

ควรเลือกเครื่องมือแยก cookie อย่างไร?

หน้านี้เหมาะเป็นจุดเริ่มต้นทั่วไปสำหรับการดีบัก cookie แต่ถ้าคุณรู้ประเภทข้อมูลอยู่แล้ว เครื่องมือเฉพาะทางจะเร็วกว่า

เครื่องมือinput ที่เหมาะเหมาะสำหรับจุดเด่นหลัก
ตัวแยกคุกกี้ (หน้านี้)Cookie string, document.cookie, Set-Cookie หลายบรรทัดเมื่อยังไม่แน่ใจประเภท input หรืออยากจัดการทั้ง request และ response cookie ในที่เดียวสลับสองโหมดได้, export JSON / Netscape และเป็นศูนย์กลางการดีบักที่สะดวก
HTTP Cookie ParserCookie request header และ string แบบ document.cookieดูว่า request ส่ง cookie อะไรไปจริง มีชื่อซ้ำหรือไม่ และค่าถูก URL-encode หรือไม่โฟกัสกับการแยกชื่อ/ค่าฝั่ง request มากกว่าเปิด HTTP Cookie Parser
Set-Cookie ParserSet-Cookie response header ที่เซิร์ฟเวอร์ส่งกลับดูว่าเบราว์เซอร์ปฏิเสธ cookie เพราะอะไร และค่า SameSite / Secure / HttpOnly มีความเสี่ยงหรือไม่เจาะลึกเรื่องแอตทริบิวต์ ความปลอดภัย และนโยบายเบราว์เซอร์เปิด Set-Cookie Parser

Best Practices

ระบุก่อนว่าข้อความที่เห็นเป็น request header หรือ response header

ถ้าข้อความมาจากโค้ด frontend, document.cookie, log ของ request หรือ curl header ให้เริ่มจากโหมด Cookie string ถ้ามาจาก Response Headers ใน Network panel ให้สลับไปโหมด Set-Cookie

HTTP Cookie ParserSet-Cookie Parser

อย่าทิ้งค่าดิบเมื่อดูค่าที่ decode แล้ว

หลายค่า cookie ถูก URL-encode ระหว่างการดีบักควรเห็นทั้งค่าดิบและค่าที่ถอดรหัสแล้วพร้อมกัน

เมื่อเจอชื่อซ้ำ ให้ตรวจ Path และ Domain ก่อน dedupe

cookie ที่ซ้ำกันมักชี้ถึง path ต่างกัน domain ต่างกัน หรือข้อมูลค้างจากการเขียนครั้งก่อน การ dedupe อัตโนมัติอาจซ่อนสาเหตุจริง

เลือก format การ export ตามขั้นตอนถัดไปใน workflow

ถ้าจะนำผลลัพธ์ไปวางใน docs, issue หรือ script อย่างเดียว JSON มักชัดเจนกว่า แต่ถ้าจะใช้กับ curl, crawler หรือเครื่องมือที่ import ไฟล์ cookie ให้เลือก Netscape Cookie File

curl เป็นโค้ด

คำถามที่พบบ่อย

ตัวแยกคุกกี้นี้รองรับรูปแบบ input แบบใดบ้าง?

รองรับ input หลัก 2 แบบ คือ string แบบแบนลักษณะ name=value; name2=value2 เช่น document.cookie หรือ Cookie: request header และ Set-Cookie response header แบบหลายบรรทัดที่คัดลอกจาก Network panel ของเบราว์เซอร์ แบบแรกเหมาะกับการดูว่า request ส่ง cookie อะไรไปจริงบ้าง ส่วนแบบที่สองเหมาะกับการตรวจ SameSite, Secure, HttpOnly, Path, Domain, Expires และ Max-Age

Cookie request header กับ Set-Cookie response header ต่างกันอย่างไร?

Cookie request header คือรายการ key-value แบบแบนที่เบราว์เซอร์ส่งไปยังเซิร์ฟเวอร์โดยไม่มีข้อมูลแอตทริบิวต์ ส่วน Set-Cookie คือ response header ที่เซิร์ฟเวอร์ส่งกลับไปยังเบราว์เซอร์ แต่ละบรรทัดบอกการตั้งค่า cookie หนึ่งตัว และอาจมี Path, Domain, Expires, SameSite, Secure, HttpOnly เพิ่มจากชื่อและค่า

ทำไมค่า cookie ดูเหมือนอ่านไม่ออก?

ค่า cookie จำนวนมากถูกเข้ารหัสแบบ URL เช่น %3D แทน = และ %2F แทน / เครื่องมือนี้จะเก็บค่าดิบไว้พร้อมแสดงค่าที่ถอดรหัสแล้วเพื่อให้ตรวจสอบเนื้อหาจริงได้ง่ายขึ้น

ทำไมถึงมีชื่อ cookie ซ้ำกัน?

ชื่อซ้ำอาจมาจาก Path ต่างกัน Domain ต่างกัน หรือมีการเขียนซ้ำระหว่างการดีบัก ชื่อซ้ำเหล่านี้มักเป็นเบาะแสสำคัญ ดังนั้นเครื่องมือจะเตือนแทนที่จะลบออกอัตโนมัติ

ควรใช้การ export แบบ JSON หรือ Netscape เมื่อไร?

JSON เหมาะเมื่อคุณต้องนำผลลัพธ์ไปใช้ต่อในสคริปต์ test case เอกสาร API หรือการวิเคราะห์ log ส่วน Netscape Cookie File เหมาะเมื่อจะนำ cookie ไปใช้ต่อในเครื่องมือหรือ workflow แบบ command line ที่รองรับรูปแบบนี้ เช่น curl -b

เครื่องมือนี้เหมาะกับการตรวจปัญหา login state หายไหม?

เหมาะ คุณสามารถดูได้ก่อนว่า request ส่ง cookie อะไรไปจริงในโหมด Cookie แล้วค่อยสลับไปที่โหมด Set-Cookie เพื่อตรวจดูว่าแอตทริบิวต์ฝั่งเซิร์ฟเวอร์ผิดหรือไม่

ถ้าฉันต้องการดูเฉพาะ cookie ของ request ทำไมต้องใช้ parser แบบรวม?

parser แบบรวมมีประโยชน์เมื่อการดีบักของคุณอาจต้องดูทั้ง document.cookie และ Set-Cookie และต้องการจุดเริ่มต้นเดียว ถ้าคุณรู้แน่ชัดว่าต้องการเฉพาะ request cookie เครื่องมือ HTTP Cookie Parser จะตรงกว่า

Session, Token หรือ login cookie ที่ฉันวางไว้จะถูกอัปโหลดขึ้นเซิร์ฟเวอร์ไหม?

ไม่ การแยก cookie การถอดรหัส URL การพรีวิว JSON และการสร้างข้อความ Netscape ทำทั้งหมดภายในเบราว์เซอร์

เครื่องมือนี้รู้จัก SameSite, Secure และ HttpOnly ใน Set-Cookie อัตโนมัติไหม?

ใช่ มันจะ parse แต่ละบรรทัดของ Set-Cookie และแสดง field แบบมีโครงสร้าง เช่น SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age และ Partitioned

สามารถนำผลลัพธ์ที่ parse แล้วไปใช้กับ curl หรือสคริปต์ต่อได้ไหม?

ได้ ในโหมด request header คุณสามารถคัดลอกเนื้อหา Cookie ที่ถูก normalize แล้วได้ และยัง export เป็น JSON หรือ Netscape Cookie File เพื่อนำไปใช้ต่อได้

อภิธานศัพท์

Cookie request header
ชุดของคู่ชื่อ-ค่าที่เบราว์เซอร์แนบไปกับ HTTP request โดยอัตโนมัติ มักอยู่ในรูป name1=value1; name2=value2 มีเฉพาะค่าที่ request ปัจจุบันจะส่งจริง ไม่รวมแอตทริบิวต์อย่าง Path, Domain, HttpOnly หรือ SameSiteHTTP Cookie Parser
Set-Cookie response header
HTTP response header ที่เซิร์ฟเวอร์ใช้ตั้งค่า cookie โดยแต่ละบรรทัดมักแทน cookie หนึ่งตัว และอาจมี Path, Domain, Expires, Max-Age, SameSite, Secure และ HttpOnly นอกเหนือจาก name=valueSet-Cookie Parser
document.cookie
อินเทอร์เฟซ string ของ cookie ที่สคริปต์ฝั่ง frontend อ่านได้ มักเป็นหลายคู่ name=value คั่นด้วยเครื่องหมายอัฒภาค ไม่รวม HttpOnly cookie และไม่แสดงข้อมูลแอตทริบิวต์ Set-Cookie แบบครบถ้วน
SameSite
แอตทริบิวต์ที่ควบคุมว่า cookie จะถูกส่งใน request ข้ามไซต์หรือไม่ ค่าที่พบบ่อยคือ Strict, Lax และ None
HttpOnly
แอตทริบิวต์ด้านความปลอดภัยของ Set-Cookie ถ้ามีอยู่ JavaScript ฝั่ง frontend จะไม่สามารถอ่าน cookie ผ่าน document.cookie ได้
Secure
แอตทริบิวต์ด้านความปลอดภัยของ Set-Cookie ถ้ามีอยู่ cookie จะถูกส่งผ่าน HTTPS เท่านั้น โดย localhost เป็นข้อยกเว้นในเครื่อง
Netscape Cookie File
รูปแบบไฟล์ข้อความสำหรับ cookie ที่เก่าแต่ยังได้รับการรองรับจากเครื่องมือ command line, crawler และสคริปต์นำเข้าอีกมาก
ค่า cookie ที่เข้ารหัสแบบ URL
ค่า cookie ที่ใช้ percent-encoding สำหรับอักขระพิเศษ เช่น %2F หรือ %3D ระหว่างการดีบักควรเทียบค่าดิบกับค่าที่ถอดรหัสแล้วเครื่องมือ URL Encode
ชื่อ cookie ซ้ำ
ชื่อ cookie เดียวกันปรากฏมากกว่าหนึ่งครั้งใน request เดียว มักเกิดจาก Path ต่างกัน Domain ต่างกัน หรือข้อมูลเก่าที่ยังค้างอยู่

คู่มือเร็วสำหรับ input cookie 3 แบบที่พบบ่อย

ปัญหาการดีบักหลายอย่างเกิดจากการระบุประเภท input ผิดตั้งแต่ก่อนเริ่ม parse

ประเภท inputตัวอย่างทั่วไปมีอะไรบ้างเครื่องมือที่เหมาะกว่า
document.cookie / Cookie request headersession=abc; theme=dark; lang=zh-CNมีเพียงคู่ name=value แบบแบน ไม่มีแอตทริบิวต์โหมด Cookie string ของหน้านี้ หรือ HTTP Cookie Parser
Set-Cookie response headersession=abc; Path=/; HttpOnly; Secure; SameSite=Laxname=value พร้อมแอตทริบิวต์ด้านความปลอดภัยและอายุการใช้งานโหมด Set-Cookie ของหน้านี้ หรือ Set-Cookie Parser
Netscape Cookie File.example.com TRUE / FALSE 0 sid abc123โดเมน, path, secure flag, เวลาหมดอายุ, ชื่อ และค่าหน้านี้สามารถสร้าง format นี้เพื่อนำไปใช้ต่อกับ curl และสคริปต์ได้

ตารางปัญหาที่พบบ่อยในการดีบัก cookie

เวลาตรวจปัญหา cookie ให้แยกก่อนว่า cookie ไม่ถูกส่งใน request หรือถูกเบราว์เซอร์ปฏิเสธ

อาการสาเหตุที่เป็นไปได้ควรตรวจอะไรก่อน
cookie เป้าหมายไม่ปรากฏใน request เลยcookie ไม่เคยถูกเขียนสำเร็จ หรือ Path / Domain scope ไม่ตรงดูโหมด Set-Cookie ก่อน แล้วค่อยดูโหมด request header
request ข้ามไซต์ไม่ส่ง cookieข้อจำกัดของ SameSite, ขาด Secure หรือ policy ของเบราว์เซอร์เกี่ยวกับ third-party cookieตรวจว่ามี SameSite=None คู่กับ Secure หรือไม่ก่อน
ค่า cookie ดูอ่านไม่ออกค่าอาจถูก URL-encode หรือห่อด้วย Base64 / JWTเปิดมุมมองที่ decode แล้ว แล้วค่อยตรวจ JWT / Base64 ต่อถ้าจำเป็น
cookie ชื่อเดียวกันทำงานไม่สม่ำเสมอมีการเขียนหลายครั้งภายใต้ Path หรือ Domain ที่ต่างกันคงรายการซ้ำไว้และเปรียบเทียบ scope กับที่มาของการเขียน
curl หรือสคริปต์เอา cookie จากเบราว์เซอร์ไปใช้ต่อไม่ได้ไม่มีรูปแบบ export มาตรฐานสลับไปใช้ JSON export หรือ Netscape Cookie File

Privacy & Security

การแยก cookie การถอดรหัส URL การพรีวิว JSON และการสร้างข้อความ Netscape ทำงานภายในเบราว์เซอร์ทั้งหมด Session, Token, login cookie และ header ที่คัดลอกมาจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ใด ๆ

จำลองตาบอดสีตัวแปลงสีเครื่องมือแปลง htaccess เป็น Nginxตัวแปลง SQLตัวแยกคุกกี้ตัวสร้าง Cronตัวตรวจสอบ Cronจัดรูปแบบ CSSบีบอัด CSSCSV เป็น Excelแปลงค่าเงินตรวจสอบความแตกต่างสร้าง Faviconจัดรูปแบบ XMLตัวแปลงเลขฐานสิบหกจัดรูปแบบ HTMLบีบอัด HTMLHTML เป็น Markdownแปลง Markdown เป็น HTMLตัวจัดรูปแบบ JavaScriptบีบอัด JSเครื่องมือจัดรูปแบบ JSXบีบอัด JSXการจัดกลุ่มคำหลักเครื่องมือสร้าง Lorem Ipsumสร้างตาราง Markdownเครื่องมือสร้าง Meta Tagเครื่องมือสร้างรหัสผ่านเครื่องมือตรวจสอบความแข็งแรงของรหัสผ่านเครื่องสร้าง QR Code/บาร์โค้ดเครื่องมือทดสอบ Regexสร้าง URL Slugสร้าง SQLเครื่องมือจัดรูปแบบ SQLเครื่องนับคำเครื่องมือเวลาจัดรูปแบบ TSบีบอัด TSจัดรูปแบบ TSXบีบอัด TSXแปลงหน่วยตัวแปลง Unix Timestampเครื่องมือสร้าง UUIDจัดรูปแบบ YAMLCase Converter