OpenReplay Logo
12k
12k

Анализатор cookie

Разбирайте заголовки Cookie и Set-Cookie в вашем браузере — декодируйте значения, читайте атрибуты и выявляйте ошибки конфигурации. Ничего не покидает вашу машину.

Обрабатывается локально
Cookie
Вставьте заголовок Cookie выше, чтобы получить список всех cookie с их декодированными значениями и размером в байтах.

Об этом инструменте

Парсер cookie разбивает строку HTTP-cookie на её части. Заголовок запроса «Cookie» (та же строка, что вы получаете из document.cookie) — это плоский список «name=value; name=value», тогда как каждый заголовок ответа «Set-Cookie» несёт один cookie плюс его атрибуты: Domain, Path, Expires, Max-Age, Secure, HttpOnly, SameSite, Partitioned и Priority. Этот инструмент читает оба: он разбивает по нужным разделителям, URL-декодирует и снимает кавычки со значений (которые сами могут содержать «=»), сообщает размер каждого cookie в байтах относительно браузерного лимита около 4096 байт и разрешает Expires и Max-Age в читаемые даты и обратные отсчёты.

Используйте его, чтобы разобраться, почему cookie не устанавливается или не отправляется — вставьте строку Set-Cookie, и инструмент укажет на классические ошибки: SameSite=None без Secure, отсутствующий Expires/Max-Age, который незаметно делает его сессионным cookie, чрезмерно большую полезную нагрузку или устаревший Domain с ведущей точкой. Либо вставьте заголовок Cookie, чтобы перечислить, что именно несёт запрос, скопировать его в виде JSON для тестовой фикстуры или обнаружить раздутый cookie, замедляющий запросы. «Load my cookies» подтягивает document.cookie для этой страницы, чтобы вы могли тут же осмотреть свои собственные не-HttpOnly cookie.

Всё разбирается локально в вашем браузере — ни один заголовок, значение или cookie никогда не отправляется на сервер, а HttpOnly-cookie намеренно невидимы для document.cookie, поэтому они не появятся под \"Load my cookies\".

Часто задаваемые вопросы

В чём разница между заголовками Cookie и Set-Cookie?

Заголовок Cookie отправляется браузером на сервер в виде одной строки пар «name=value», разделённых точками с запятой, без атрибутов. Set-Cookie идёт в обратном направлении — по одному заголовку на cookie в ответе — и несёт атрибуты вроде Domain, Path, Expires, Max-Age, Secure и SameSite, которые сообщают браузеру, как его хранить и отправлять.

Что побеждает, Max-Age или Expires, когда заданы оба?

Max-Age имеет приоритет. Если заголовок Set-Cookie включает оба, браузеры, поддерживающие Max-Age, используют его и игнорируют Expires; Max-Age — это срок жизни в секундах, тогда как Expires — это абсолютная дата. Max-Age равный 0 или отрицательное значение удаляет cookie немедленно.

Почему мой cookie с SameSite=None отклоняется?

Браузеры требуют атрибут Secure всякий раз, когда используется SameSite=None, чтобы cookie отправлялся только по HTTPS. Set-Cookie с SameSite=None, но без флага Secure отбрасывается — добавьте Secure (и отдавайте по HTTPS), чтобы это исправить.