ตัวแยกคุกกี้
| 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
วิธีการใช้งาน
- ระบุ source ก่อน: ใช้โหมด Cookie string สำหรับ document.cookie, request headers หรือ logs และใช้โหมด Set-Cookie สำหรับ response headers
- วางข้อความ cookie ดิบลงในช่อง input แล้วเครื่องมือจะแยกชื่อ ค่า และแอตทริบิวต์ให้อัตโนมัติ
- เปิดค่าที่ URL-decode แล้ว กรอง field สำคัญ และตรวจคำเตือนชื่อซ้ำหรือตารางแอตทริบิวต์ตามต้องการ
- คัดลอกข้อความที่ 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 Parser | Cookie request header และ string แบบ document.cookie | ดูว่า request ส่ง cookie อะไรไปจริง มีชื่อซ้ำหรือไม่ และค่าถูก URL-encode หรือไม่ | โฟกัสกับการแยกชื่อ/ค่าฝั่ง request มากกว่าเปิด HTTP Cookie Parser |
| Set-Cookie Parser | Set-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 header | session=abc; theme=dark; lang=zh-CN | มีเพียงคู่ name=value แบบแบน ไม่มีแอตทริบิวต์ | โหมด Cookie string ของหน้านี้ หรือ HTTP Cookie Parser |
| Set-Cookie response header | session=abc; Path=/; HttpOnly; Secure; SameSite=Lax | name=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
- บีบอัด CSS
- CSV เป็น Excel
- แปลงค่าเงิน
- ตรวจสอบความแตกต่าง
- สร้าง Favicon
- จัดรูปแบบ XML
- ตัวแปลงเลขฐานสิบหก
- จัดรูปแบบ HTML
- บีบอัด HTML
- HTML เป็น 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
- จัดรูปแบบ YAML
- Case Converter