Який максимальний розмір ключа файлу cookie веб-браузера?


300

Який максимальний розмір ключа файлу cookie веб-браузера?

Я знаю, що максимальний розмір файлу cookie становить 4 КБ, але чи ключ має також обмеження?

Відповіді:


359

Обмеження 4K, про яке ви читали, стосується всього файлу cookie, включаючи ім'я, значення, термін придатності тощо. Якщо ви хочете підтримувати більшість веб-переглядачів, я пропоную зберегти ім’я в розмірі 4000 байт і загальний розмір файлу cookie під 4093 байт.

Слід бути обережним: якщо ім'я завелике, ви не можете видалити файли cookie (принаймні, у JavaScript). Файл cookie видаляється шляхом оновлення та встановлення терміну дії. Якщо назва занадто велика, скажімо, 4090 байт, я виявив, що не можу встановити термін придатності. Я дивився на це лише з цікавості, а не на те, що планую назвати таке велике ім'я.

Щоб прочитати більше про це, ось " Обмеження файлів cookie браузера " для звичайних браузерів.


Якщо ви хочете підтримувати більшість веб-переглядачів, ви не повинні перевищувати 50 файлів cookie на домен і 4093 байти на домен . Тобто розмір усіх файлів cookie не повинен перевищувати 4093 байт.

Це означає, що ви можете мати печиво з 4093 байтів, або 2 файли cookie з 2045 байт тощо.


Раніше я говорив 4095 байт за рахунок IE7, однак зараз мобільний Safari постачається з 4096 байтами з 3 байтами на печиво, тому 4093 байт макс.


14
ліміт 4K відноситься до всіх файлів cookie під певним доменом - таким чином, коли ця межа буде досягнута, ви, ймовірно, не зможете створити новий файл cookie.
ulkas

6
@ulkas: Я зараз додав це. Після досягнення межі я помітив, що у багатьох браузерах ви можете створювати нові файли cookie, але це видалить купу існуючих.
Iain

1
Примітка: RFC 2965 був застарілий і замінений RFC 6265. Розділ обмежень значною мірою не змінився (див.: Tools.ietf.org/html/rfc6265#section-6.1 ), але RFC 6265 є канонічним джерелом.
Джим Охаллоран

107

Насправді, RFC 2965, документ, який визначає, як працюють файли cookie, вказує, що не повинно бути максимальної довжини ключа чи розміру значень файлу cookie , і заохочує реалізацію підтримувати довільно великі файли cookie. Кожен максимум реалізації браузера обов'язково відрізнятиметься, тому зверніться до документації окремого браузера.

Дивіться розділ 5.3, "Обмеження впровадження", в RFC .


13
Як завжди, "специфікація" та "реальний світ" здаються абсолютно різними. Оскільки файли cookie надсилаються з КОЖНИМ запитом http, насправді добре, що є обмеження.
BenSwayne

3
Це досить марна специфіка, якщо насправді є межі! Це, правда, "правильна" відповідь!
Обмежене спокутування

3
Я не розумію, чому браузери вирішили не слідувати цій специфікації. Немає жодної причини, чому я не міг би скидати більше 4 КБ (що не так вже й багато) у файли cookie, коли такі речі, як localStorage, вже є.
Вільям

1
Примітка: RFC 2965 був застарілий і замінений RFC 6265. Розділ обмежень значною мірою не змінився (див.: Tools.ietf.org/html/rfc6265#section-6.1 ), але RFC 6265 є канонічним джерелом.
Джим Охаллоран

42

Після тестування декількох веб-переглядачів і використання браузерних знімків я склав наступний список

введіть тут опис зображення


3
Відповів 18-02-2017 LOL, але Версії дуже давні.
Аджмал Правен

3
@AjmalPraveen Це тому, що ця відповідь скопійована з цього сайту (хоча старша версія, як ви сказали). Джерело було б приємно, тому зацікавлені люди можуть подивитися на більш сучасне джерело
Robby Groot

4
Ця точна таблиця оновлюється і доступна на веб-переглядачі browsercookielimits.squawky.net
gskema

39

Ви також можете використовувати веб- сховище, якщо специфікація програми дозволяє вам (у ньому є підтримка IE8 +).

У його розпорядженні 5M (більшість браузерів) або 10M (IE) пам'яті.

" Веб-сховище (друге видання) " - це API, а " Місцеве зберігання HTML5 " - це швидкий початок.


4
Тут, мабуть, слід зауважити, що застереження щодо використання веб-сховища полягає в тому, що без вирішення даних, що зберігаються у веб-сховищі, можна зберігати / отримувати доступ з HTTP АБО HTTPS, але не поділятись між ними (навіть для одного сайту).
ilasno

2
@ilasno Afaik таке ж обмеження існує і для традиційних файлів cookie.
Стів Мідглі

Найважливіший застереження, а не веб-зберігання, зберігання сеансу та локальне зберігання доступні лише через браузер, а не сервер. Це, безумовно, слід враховувати, обираючи будь-який із цих файлів cookie, які читаються як у браузері, так і на сервері.
Vadorequest

16

Ключ cookie (використовується для ідентифікації сеансу) та cookie - це одне і те ж, що використовується різними способами. Тож межа була б однаковою. За даними Microsoft, її 4096 байт.

MSDN

файли cookie зазвичай обмежені 4096 байтами, і ви не можете зберігати більше 20 файлів cookie на одному сайті. Використовуючи єдиний файл cookie з підрозділами, ви використовуєте меншу кількість тих 20 файлів cookie, які розміщено на вашому веб-сайті. Крім того, один cookie містить близько 50 символів для накладних витрат (інформація про термін дії тощо), плюс довжина значення, яке ви зберігаєте в ньому, і все це рахується до границі 4096 байт. Якщо ви зберігаєте п'ять підрозділів замість п'яти окремих файлів cookie, ви зберігаєте накладні витрати окремих файлів cookie та можете заощадити близько 200 байт.


7
Між іншим, лише тому, що у вас є близько 4 КБ пам’яті файлів cookie для браузера, вам слід серйозно задуматися, чи це гарна ідея чи ні.
NotMe

Чи можете ви підтвердити, якщо кількість доменних файлів / сайтів не може перевищувати 20? чи його зросло до теперішнього часу?
Мутант

2

Не зовсім пряма відповідь на початкове запитання, але актуальна для допитливих, які швидко намагаються візуально зрозуміти своє планування зберігання інформації про файли cookie, не застосовуючи складний алгоритм обмеження, цей рядок становить 4096 байтів символів ASCII:

"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmn"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.