Що таке кеш і як працює кеш-пам’ять?

Автор: Опубліковано

Коротко: Кеш, або кеш-пам’ять, зберігає дані, які можуть знадобитися повторно, щоб швидше їх надати. Завдяки цьому браузеру не потрібно щоразу завантажувати ті самі файли, а серверу — повторювати частину обчислень. Проте іноді збережені дані застарівають. Тоді допомагає їх оновлення або очищення відповідного кешу.

Як працює кеш-пам’ять?

Коли застосунку потрібні певні дані, він може спочатку перевірити, чи є вони в кеші. Якщо там є копія, яку можна використати за встановленими правилами, застосунок читає її замість того, щоб звертатися до джерела. Це називається влучанням у кеш. Якщо копії немає або вона непридатна для використання, застосунок знову завантажує або обчислює дані.

Уявіть інтернет-магазин, у якому ви переглядаєте кілька товарів. Логотип магазину, частина піктограм і файл, що визначає оформлення сайту, спільні для різних сторінок. Браузер може зберегти їх після першого завантаження, а не завантажувати знову після кожного натискання.

Кеш не обов’язково розміщується в пам’яті RAM. Залежно від призначення кешовані дані також зберігають на диску або на окремому сервері. Мета однакова: скоротити час доступу до даних і обсяг роботи, потрібної для їх отримання.

Де ви щодня стикаєтеся з кешем?

Кеш-пам’ять працює на різних рівнях. Якщо розрізняти їх, легше з’ясувати, чому сайт або застосунок досі показує стару версію даних.

Вид кешуЩо може зберігатиДля чого потрібен
БраузераЗображення, файли стилів і скриптиЗменшує потребу в повторному завантаженні ресурсів сайту
ЗастосункуМініатюри, завантажені матеріали, результати запитівПришвидшує показ вмісту та повторювані операції
СервераГотові сторінки або результати обчисленьЗменшує навантаження на систему, що обслуговує сайт
CDNКопії файлів або відповіді сайтуДоставляє вміст із розподіленої мережі серверів
DNSВідповіді, що містять m.in. (зокрема) IP-адресу доменуЗменшує кількість повторних запитів про адресу сервера

CDN — це мережа серверів, які виступають посередниками в доставленні вмісту користувачам. Натомість DNS — система, що дає змогу визначити, зокрема, IP-адресу, яка відповідає доменному імені. Кеш DNS не зберігає оформлення сторінки — він запам’ятовує відповіді щодо її адресації.

Процесори також мають власну кеш-пам’ять, яка забезпечує швидкий доступ до часто використовуваних даних та інструкцій. Однак це не той кеш, який ви очищаєте в налаштуваннях браузера.

Чому кеш іноді показує застарілі дані?

Копія в кеші не завжди змінюється одночасно з джерелом. Якщо власник сайту замінить зображення, браузер ще може використовувати раніше завантажений файл. Так само сервер може повертати збережену версію сторінки замість того, щоб формувати її заново.

Один зі способів контролювати актуальність — TTL, тобто строк дії запису в кеші. Після його завершення система може завантажити нові дані або перевірити, чи досі актуальна наявна копія. Саме по собі завершення строку дії не обов’язково означає негайне видалення файлу з диска.

Другий механізм — інвалідація кешу: позначення збереженої копії як неактуальної або її видалення після зміни даних. Під час публікації нових файлів сайту також використовують версіонування адрес, наприклад замінюють style.v1.css на style.v2.css. Нова адреса дає змогу відрізнити новий ресурс від раніше збереженої копії.

Дані на кшталт вмісту особистого облікового запису чи кошика потребують особливої обережності. Спільний для кількох користувачів кеш не повинен надавати одній людині вміст, призначений для іншої. Це питання налаштування сайту, яке відвідувач не може вирішити очищенням кешу браузера.

Коли і як очищати кеш?

Очищати кеш-пам’ять доцільно, коли сторінка відображається неправильно, не показує опублікованих змін або застосунок використовує пошкоджені тимчасові файли. Щодня робити це для пришвидшення пристрою не потрібно. Після видалення копій перше відкриття сторінки може тривати довше й потребувати повторного завантаження ресурсів.

Якщо ви підозрюєте проблему з кешем сайту, виконайте такі кроки:

  1. Оновіть сторінку. Якщо це не допомагає, скористайтеся доступною в браузері функцією оновлення без використання кешу. Звичайне оновлення не завжди змушує браузер повторно завантажити всі файли.
  2. Перевірте сторінку в іншому браузері. Відмінність може вказувати на локальну проблему, хоча причиною також можуть бути розширення або налаштування.
  3. Очистьте кешовані зображення та файли. Перевірте вибраний часовий діапазон і позначені параметри. Назви пунктів залежать від браузера; видалення всіх даних сайтів може також видалити дані входу й налаштування.
  4. Якщо ви керуєте сайтом, перевірте кеш сервера та CDN. Видалення локальних файлів не видаляє копій, що зберігаються в цих системах.

Після зміни IP-адреси домену значення може мати кеш DNS. Його очищення на комп’ютері не видаляє записів із кешу серверів DNS, які використовує оператор, тому не гарантує, що зміна стане помітною негайно.

Файли cookie — це невеликі порції даних, які сайт може зберегти в браузері, наприклад для розпізнавання сеансу користувача. Кеш призначений передусім для повторного використання ресурсів. Очищення лише кешованих файлів зазвичай не призводить до виходу з облікових записів на сайтах, але видалення файлів cookie може це зробити.

У налаштуваннях застосунку опція «очистити дані» зазвичай охоплює більше, ніж «очистити кеш». Вона може видалити налаштування, дані входу або локально збережені матеріали. Перш ніж скористатися нею, прочитайте системне повідомлення та переконайтеся, що важливі файли збережено або синхронізовано.

Якщо проблема стосується одного сайту, почніть з оновлення та видалення лише його кешованих ресурсів, якщо браузер надає таку можливість. Не видаляйте всі дані перегляду, доки не перевірите менш радикальний спосіб.

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.