Кэш, куки и другие хранилища для тестировщика

Интерактивный гид по кэшу, куки, Local Storage и другим местам, где браузер хранит данные.

Cookies

Что это: Маленькие текстовые файлы, которые сервер отправляет браузеру. Браузер хранит их и отправляет обратно с каждым запросом на тот же сервер.

Живут до...

Указанной даты (expires) или до ручной очистки.

Объем

~4 КБ

Что обычно хранят: Токены аутентификации, ID сессии, настройки пользователя (язык, тема), информацию для аналитики (например, ID пользователя для Google Analytics).

Где найти: DevTools → Application → Storage → Cookies

Как тестировать:

  • Проверить, что куки создаются и удаляются в нужный момент (например, при логине/логауте).
  • Проверить флаги Secure (передача только по HTTPS) и HttpOnly (защита от доступа из JavaScript).
  • Очистить куки и убедиться, что сессия пользователя завершилась.
  • Проверить работу сайта с отключенными куками.

Local Storage

Что это: Хранилище типа "ключ-значение", которое хранит данные бессрочно, пока они не будут удалены вручную или через код.

Живут до...

Никогда. Данные постоянны.

Объем

~5-10 МБ

Что обычно хранят: Настройки интерфейса (например, theme: 'dark'), JWT-токены, данные, которые должны "пережить" закрытие браузера, содержимое корзины в интернет-магазине.

Где найти: DevTools → Application → Storage → Local Storage

Как тестировать:

  • Убедиться, что данные сохраняются после закрытия и повторного открытия браузера.
  • Проверить, что данные доступны во всех вкладках одного и того же сайта.
  • Проверить, что происходит при достижении лимита хранилища.
  • Вручную очистить хранилище и проверить, что сайт сбросился к состоянию по умолчанию.

Session Storage

Что это: Аналог Local Storage, но данные существуют только в рамках одной сессии (одной вкладки). При закрытии вкладки данные удаляются.

Живут до...

Закрытия вкладки/браузера.

Объем

~5-10 МБ

Что обычно хранят: Данные, введенные в многошаговую форму (чтобы не потерялись при перезагрузке страницы), временные фильтры или состояние сортировки на странице.

Где найти: DevTools → Application → Storage → Session Storage

Как тестировать:

  • Проверить, что данные удаляются после закрытия вкладки.
  • Убедиться, что данные НЕ доступны в другой вкладке, даже если там открыт тот же сайт.
  • Проверить, что данные сохраняются при перезагрузке страницы (F5).

Browser Cache

Что это: Место, где браузер хранит копии статичных файлов (картинки, CSS, JS), чтобы не скачивать их заново при повторном посещении сайта.

Живут до...

Зависит от заголовков сервера (Cache-Control).

Объем

~50-300+ МБ

Что обычно хранят: Логотипы, иконки, CSS-стили, JS-библиотеки (например, React или jQuery), шрифты — все, что редко меняется и ускоряет загрузку сайта.

Где найти: DevTools → Network → колонка "Size" (искать "from disk cache" / "from memory cache")

Как тестировать:

  • Проверить, что после обновления CSS/JS файла на сервере клиент получает новую версию (cache busting).
  • Использовать "жесткую перезагрузку" (Ctrl+Shift+R), чтобы убедиться, что сайт работает с чистым кэшем.
  • Проверить в DevTools, что статические ресурсы загружаются из кэша при повторном визите.

IndexedDB

Что это: Полноценная NoSQL база данных внутри браузера для хранения больших объемов структурированных данных. Идеальна для приложений, работающих офлайн.

Живут до...

Никогда. Данные постоянны.

Объем

~1 ГБ+

Что обычно хранят: Содержимое email-клиента для офлайн-доступа, черновики документов в онлайн-редакторах, большие объемы данных для сложных веб-приложений.

Где найти: DevTools → Application → Storage → IndexedDB

Как тестировать:

  • Проверить базовые CRUD-операции (создание, чтение, обновление, удаление данных).
  • Протестировать работу приложения в офлайн-режиме (вкладка Network → Offline).
  • Проверить, как приложение обрабатывает обновление версии базы данных.