Задать вопрос
johnymkp
@johnymkp

Что означают ограничения на cookie?

Я читал про куки и про их ограничения, вот даже конкретные цифры с тестами встретил. Однако я не понимаю, к чему именно они относятся.
300 cookies in total
4096 bytes per cookie
20 cookies per domain
81920 bytes per domain


Во-первых, cookie и cookies. Переводится наверное как "кука" и "куки". В моем понимании, кука это имеется ввиду одна пара ключ+значение, а куки - это целая строка таких пар. Но я не уверен. Поэтому, чтобы дальше было понятно, о чем я говорю, я буду писать "куки-строка" (username=Sam; age=40) и "куки-элемент" (username=Sam). Напишите, если знаете, есть ли для этого какие-нибудь общепринятные термины.

20 cookies per domain - насколько я понял, куки-строка привязана к паре origin+path. Т.е. каждая, грубо говоря, страница сайта имеет свою персональную куки-строку (при этом любой куки-элемент из этой строки можно расшарить для других страниц с помощью атрибутов domain и path). Нескольких куки-строк у страницы быть не может, т.к. все куки-элементы хранятся в единой строке. Стало быть 20 cookies per domain значит, что у страницы может быть только 20 куки-элементов?

4096 bytes per cookie - это значит, что на 4096b выделяется на один куки-элемент (и на ключ, и на значение суммарно)? Или на всю куки-строку?

300 cookies in total - что это? 300 куки-строк? Т.е. только для 300 страниц мы можем сохранить куки? Или это 300 куки-элементов суммарно на все куки-строки (а самих куки-строк, соответственно, неограниченно много).
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
sfi0zy
@sfi0zy Куратор тега JavaScript
Creative frontend developer
Все эти "странные" числа уходят корнями в документ RFC 2109, актуальная версия которого датируется 1997 годом. В исторической перспективе это ненамного позже крылатого выражения "640 кб памяти хватит всем", так что 300 печенек на всех - это реалии того времени. Интернета еще толком не было. Браузеры, которые были тогда, уже вымерли. Не стоит воспринимать эти числа как актуальную информацию и вчитываться в написание слов.

На текущий момент нам нужно читать RFC 6265. Там в лимитах значится, что бразуеры должны как минимум обеспечить:

  • At least 4096 bytes per cookie (as measured by the sum of the length of the cookie's name, value, and attributes).
  • At least 50 cookies per domain.
  • At least 3000 cookies total.

Здесь трактовки конкретные, поясняется, что есть размер в 4096 bytes. Домен здесь - это домен, про пути в документе везде говорится отдельно. Если возникают сложности с трактовкой терминов, то стоит пролистать документ в начало и почитать, там весь механизм подробно расписан. По поводу общего количества кук - скорее всего современные браузеры делают больше, чем минимально необходимо по стандарту, но это гадание на кофейной гуще, точно мы не знаем, вероятно у всех по-разному.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы