ขนาดสูงสุดของคีย์ของคุกกี้ของเว็บเบราว์เซอร์คืออะไร


300

ขนาดสูงสุดของคีย์ของคุกกี้ของเว็บเบราว์เซอร์คืออะไร

ฉันรู้ว่าขนาดสูงสุดของคุกกี้คือ 4KB แต่ที่สำคัญมีข้อ จำกัด เช่นกัน?

คำตอบ:


359

ขีด จำกัด 4K ที่คุณอ่านมีไว้สำหรับคุกกี้ทั้งหมดรวมถึงชื่อค่าวันหมดอายุเป็นต้นหากคุณต้องการรองรับเบราว์เซอร์ส่วนใหญ่ฉันขอแนะนำให้รักษาชื่อไว้ต่ำกว่า 4,000 ไบต์และขนาดคุกกี้โดยรวมต่ำกว่า 4093 ไบต์

สิ่งหนึ่งที่ต้องระวัง: หากชื่อมีขนาดใหญ่เกินไปคุณจะไม่สามารถลบคุกกี้ได้ (อย่างน้อยก็ใน JavaScript) คุกกี้จะถูกลบโดยอัปเดตและตั้งค่าให้หมดอายุ หากชื่อใหญ่เกินไปพูด 4090 ไบต์ฉันพบว่าฉันไม่สามารถกำหนดวันหมดอายุได้ ฉันแค่ดูจากสิ่งที่น่าสนใจไม่ใช่ว่าฉันวางแผนที่จะมีชื่อที่ยิ่งใหญ่

หากต้องการอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้นี่คือ " ข้อ จำกัด คุกกี้เบราว์เซอร์ " สำหรับเบราว์เซอร์ทั่วไป


ในขณะที่ในเรื่องที่ถ้าคุณต้องการที่จะสนับสนุนเบราว์เซอร์ส่วนใหญ่แล้วไม่เกิน50 คุกกี้ต่อโดเมนและ4093 ไบต์ต่อโดเมน นั่นคือขนาดของคุกกี้ทั้งหมดไม่ควรเกิน 4093 ไบต์

หมายความว่าคุณสามารถมี 1 คุกกี้ 4093 ไบต์หรือ 2 คุกกี้ 2045 ไบต์เป็นต้น


ฉันเคยบอกว่า 4095 ไบต์เนื่องจาก IE7 แต่ตอนนี้ Mobile Safari มาพร้อมกับ 4096 ไบต์ที่มีค่าใช้จ่าย 3 ไบต์ต่อคุกกี้ดังนั้น 4093 ไบต์สูงสุด


14
ขีด จำกัด 4K หมายถึงคุกกี้ทั้งหมดภายใต้โดเมนเฉพาะ - ดังนั้นเมื่อถึงขีด จำกัด นี้คุณจะไม่สามารถสร้างคุกกี้ใหม่ได้
ulkas

6
@ulkas: ฉันได้เพิ่มเข้าไปในตอนนี้ เมื่อถึงขีด จำกัด ฉันได้สังเกตเห็นในเบราว์เซอร์จำนวนมากคุณสามารถสร้างคุกกี้ใหม่ แต่จะลบคุกกี้ที่มีอยู่เดิม
เลน

1
หมายเหตุ: RFC 2965 ล้าสมัยแล้วและแทนที่ด้วยRFC 6265 ส่วนข้อ จำกัด นั้นส่วนใหญ่จะไม่เปลี่ยนแปลง (ดู: tools.ietf.org/html/rfc6265#section-6.1 ) แต่ตอนนี้ RFC 6265 เป็นแหล่งมาตรฐาน
จิม OHalloran

107

อันที่จริงแล้ว RFC 2965 เป็นเอกสารที่กำหนดวิธีการทำงานของคุกกี้ระบุว่าไม่ควรมีความยาวสูงสุดของคีย์หรือขนาดของค่าคุกกี้และสนับสนุนการใช้งานเพื่อสนับสนุนคุกกี้ขนาดใหญ่โดยพลการ การใช้งานสูงสุดของแต่ละเบราว์เซอร์จะแตกต่างกันดังนั้นโปรดอ่านเอกสารประกอบของเบราว์เซอร์แต่ละตัว

ดูในส่วน 5.3 "ข้อ จำกัด การดำเนินงาน" ในอา


13
ตามปกติ "spec" และ "โลกแห่งความจริง" ดูเหมือนจะแตกต่างอย่างสิ้นเชิง เนื่องจากคุกกี้ถูกส่งไปพร้อมกับคำขอ HTTP ทุกครั้งจึงเป็นเรื่องดีที่มีข้อ จำกัด
BenSwayne

3
นั่นเป็นข้อมูลจำเพาะที่ไร้ประโยชน์ถ้าในความเป็นจริงมีข้อ จำกัด ! นี่คือคำตอบ "ถูกต้อง" แต่!
การชดเชยที่ จำกัด

3
ฉันไม่เข้าใจว่าทำไมเบราว์เซอร์เลือกที่จะไม่ทำตามข้อกำหนดนี้ ไม่มีเหตุผลว่าทำไมฉันไม่ควรที่จะถ่ายโอนข้อมูลมากกว่า 4KB (ซึ่งไม่มากขนาดนั้น) ลงในคุกกี้เมื่อสิ่งต่างๆเช่น localStorage มีอยู่แล้ว
วิลเลียม

1
หมายเหตุ: RFC 2965 ล้าสมัยแล้วและแทนที่ด้วยRFC 6265 ส่วนข้อ จำกัด นั้นส่วนใหญ่จะไม่เปลี่ยนแปลง (ดู: tools.ietf.org/html/rfc6265#section-6.1 ) แต่ตอนนี้ RFC 6265 เป็นแหล่งมาตรฐาน
จิม OHalloran

42

หลังจากทดสอบเบราว์เซอร์ด้วยตัวเองและใช้ Browser Shots ฉันได้รวบรวมรายการต่อไปนี้

ป้อนคำอธิบายรูปภาพที่นี่


3
ตอบเมื่อ 18-02-2017 ฮ่า ๆ แต่รุ่นนั้นเก่าเกินไปออกวันที่
Ajmal Praveen

3
@AjmalPraveen นั่นเป็นเพราะคำตอบนี้ถูกคัดลอกมาจากเว็บไซต์นี้ (แม้ว่าจะเป็นเวอร์ชั่นเก่ากว่าอย่างที่คุณพูด) แหล่งข้อมูลจะดีดังนั้นผู้ที่สนใจสามารถดูแหล่งข้อมูลที่ทันสมัยมากขึ้น
Robby Groot

4
ตารางนี้แน่นอนมีการปรับปรุงและการให้บริการที่browsercookielimits.squawky.net
gskema

39

คุณยังสามารถใช้ที่เก็บข้อมูลบนเว็บได้เช่นกันหากรายละเอียดแอปอนุญาตให้คุณทำเช่นนั้น (รองรับ IE8 +)

มันมี5M (เบราว์เซอร์ส่วนใหญ่) หรือ10M (IE) ของหน่วยความจำในการกำจัด

" Web Storage (Second Edition) " เป็น API และ " HTML5 Local Storage " เป็นการเริ่มต้นอย่างรวดเร็ว


4
ควรสังเกตว่าที่นี่มีข้อแม้สำหรับการใช้ที่เก็บข้อมูลบนเว็บนั่นคือโดยที่ไม่มีวิธีแก้ปัญหาข้อมูลที่จัดเก็บในที่เก็บข้อมูลบนเว็บสามารถจัดเก็บบน / เข้าถึงได้จาก HTTP หรือ HTTPS เท่านั้น แต่ไม่ได้ใช้ร่วมกัน
ilasno

2
@ilasno Afaik มีข้อ จำกัด เดียวกันสำหรับคุกกี้แบบดั้งเดิม
Steve Midgley

ข้อแม้ที่สำคัญที่สุดคือแทนที่จะเป็นที่เก็บข้อมูลเว็บที่เก็บข้อมูลของเซสชันและที่เก็บข้อมูลในตัวเครื่องสามารถเข้าถึงได้จากเบราว์เซอร์เท่านั้นไม่ใช่เซิร์ฟเวอร์ นั่นเป็นสิ่งที่ควรพิจารณาเมื่อเลือกระหว่างสิ่งเหล่านี้กับคุกกี้ซึ่งสามารถอ่านได้ทั้งบนเบราว์เซอร์และเซิร์ฟเวอร์
Vadorequest

16

รหัสคุกกี้ (ใช้เพื่อระบุเซสชัน) และคุกกี้เป็นสิ่งเดียวกับที่ใช้ในวิธีต่างๆ ดังนั้นขีด จำกัด ก็จะเหมือนกัน ตามที่ Microsoft 4096 ไบต์

MSDN

คุกกี้มักจะถูก จำกัด ที่ 4096 ไบต์และคุณไม่สามารถจัดเก็บมากกว่า 20 คุกกี้ต่อเว็บไซต์ ด้วยการใช้คุกกี้เดี่ยวที่มีคีย์ย่อยคุณจะใช้คุกกี้น้อยลง 20 รายการที่ไซต์ของคุณได้รับการจัดสรร นอกจากนี้คุกกี้เดียวใช้เวลาประมาณ 50 ตัวอักษรสำหรับค่าใช้จ่าย (ข้อมูลการหมดอายุและอื่น ๆ ) รวมถึงความยาวของค่าที่คุณเก็บไว้ในนั้นทั้งหมดนี้จะนับรวมถึงขีด จำกัด 4096- ไบต์ หากคุณเก็บคีย์ย่อยห้าตัวแทนที่จะเป็นห้าคุกกี้แยกกันคุณจะบันทึกโอเวอร์เฮดของคุกกี้แยกต่างหากและสามารถบันทึกได้ประมาณ 200 ไบต์


7
อนึ่งเพียงเพราะคุณมีที่เก็บคุกกี้เบราว์เซอร์ประมาณ 4KB เพื่อเล่นกับคุณควรพิจารณาอย่างจริงจังว่าเป็นความคิดที่ดีหรือไม่
NotMe

คุณสามารถยืนยันได้ว่าจำนวนคุกกี้ไม่เกิน 20 โดเมนต่อเว็บไซต์หรือไม่ หรือเพิ่มขึ้นในตอนนี้?
เปลี่ยนแปลง

2

ไม่ใช่คำตอบที่ตรงกับคำถามต้นฉบับทั้งหมด แต่เกี่ยวข้องกับผู้อยากรู้อยากเห็นอย่างรวดเร็วพยายามเข้าใจการวางแผนการจัดเก็บข้อมูลคุกกี้โดยไม่ต้องใช้อัลกอริธึม จำกัด ที่ซับซ้อนสตริงนี้คือ 4096 อักขระ ASCII ไบต์:

"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmn"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.