Cookie Notice and Page Caching: Common Mistakes That Can Be Easily Avoided

Cookie Notice and Page Caching: Common Mistakes That Can Be Easily Avoided

 

Примітка: Ми використовували посилання на комісію в цій статті та позначали їх “*”. Якщо замовлення розміщується за цими посиланнями, t3n.de отримує комісію.

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

Якщо у вас веб-сайт, ви майже напевно встановили на ньому повідомлення про файли cookie. Цим ви інформуєте своїх відвідувачів про використання файлів cookie або навіть просите дозволу на їх використання. Щоб оптимізувати час завантаження, ви, ймовірно, також встановили систему кешування на веб-сайті або сервері. Більшість провайдерів хостингу тепер вмикають це автоматично. (Якщо ви ще не використовуєте систему кешування, вам слід зробити це якомога швидше, оскільки час завантаження вашого веб-сайту все ще є важливим фактором SEO! ;-))

Поєднання кешування та повідомлення про файли cookie часто призводить до проблем, але їх легко вирішити.

Перш за все, що таке кешування?

Хоча існують різні типи кешування, майже всі вони працюють однаково: вони створюють “версію” веб-сайту, яку можна швидко доставити користувачеві без необхідності витрачати додаткові ресурси на сервер.

Наприклад, якщо ви використовуєте систему управління вмістом, як WordPress, вона запускає PHP-код на сервері кожного разу, коли користувач заходить на веб-сайт. Він отримує деяку інформацію з бази даних, а потім створює HTML-сторінку, яку запитував користувач.

Щоб уникнути повторення цього кожного разу, коли користувач відвідує веб-сайт, система кешування зберігає цю згенеровану HTML-сторінку під час її створення. Коли хтось відвідує веб-сайт, сервер надає лише цю HTML-версію сторінки без необхідності повторного запуску PHP. Це зменшує кількість запитів до бази даних до мінімуму. Навантаження на сервері значно зменшується, а час завантаження веб-сайту значно прискорюється.

Які проблеми можуть виникнути із системою кешування?

Проблема в тому, що ця HTML-сторінка генерується лише один раз. Отже, кожен інший користувач отримує точно таку ж версію веб-сайту. Якщо повідомлення про файли cookie працює лише на мовах сервера (наприклад, PHP з WordPress), цей код PHP, який відповідає за відображення повідомлення про файли cookie або встановлення файлів cookie, більше не буде виконуватися. Зокрема, це означає: Якщо повідомлення про файли cookie було відображено під час створення сторінки HTML, дуже ймовірно, що воно відображатиметься для кожного користувача, включаючи тих, хто вже прийняв файли cookie заздалегідь. Зворотний випадок – тобто повідомлення про файли cookie ніколи не відображається – може, звичайно, також мати місце.

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

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

Як я можу уникнути проблем із кешуванням та повідомленнями про файли cookie?

Відповідь очевидна: використовуючи JavaScript! На відміну від PHP або іншої мови на стороні сервера, якою користуються веб-сайти, JavaScript включається у HTML-версію сторінки (також у кеш-пам’яті) та виконується у браузері користувача. Це означає, що код завжди є і працює – незалежно від того, бачить користувач кешовану версію веб-сайту.

JavaScript може перевірити, чи було дозволено використання файлів cookie. Він також може показувати або приховувати повідомлення про файли cookie та встановлювати файли cookie, як тільки вони приймаються.

На жаль, тут також час від часу можуть виникати проблеми. Деякі плагіни cookie насправді не спрямовані на систему кешування. Наприклад, JavaScript може використовуватися для відображення або приховування повідомлення про файли cookie, але мова на сервері (яка, в свою чергу, не виконується, коли веб-сайт кешований), для встановлення або перевірки файлів cookie. Як уже зазначалося, оператори веб-сайтів припускають, що система cookie працює, що насправді не відповідає дійсності.

Чи потрібно зараз вивчати JavaScript?

Не панікуйте, не потрібно! Майже для кожної системи, яка використовується для створення веб-сайту, є плагіни або розширення, які зроблять роботу за вас! Перелік усіх цих плагінів вийшов би за рамки цієї статті. Але ви можете бути впевнені, що їх сотні! Просто прочитайте деталі плагіна та переконайтесь, що плагін використовує лише JavaScript.

Щоб бути повністю впевненим, ви також можете перевірити, які файли cookie використовує ваш веб-сайт. Це можна зробити за допомогою будь-якого звичайного браузера. Просто відкрийте доступні вам «інструменти для розробників», а потім вкладку Файли cookie . Наприклад, із Chrome можна вчинити так: Відкрийте приватну вкладку та натисніть там меню Показати -> розробник -> Інструменти розробника . У вашому браузері відкриється новий інтерфейс. Клацніть на вкладці там Додаток і область Файли cookie . Тут ви також можете видалити вже встановлені файли cookie. Потім ви можете знову відвідати ваш веб-сайт, щоб перевірити, працює повідомлення про файли cookie чи ні.

(Знімок екрану: Антоніо Санчес)

Але якщо ви хочете трохи програмувати самостійно, ми маємо просте рішення, яке вам просто потрібно скопіювати:

1. Перевірте за допомогою JavaScript, чи встановлено певний файл cookie:

Усі файли cookie зберігаються у вигляді рядка символів в об’єкті документа, що містить розділений крапкою з комою список імені та значення файлів cookie:

cookie-name=value; other-cookie=other-value;

Це означає, що вам потрібно лише ім’я файлу cookie, який ви хочете шукати, наприклад:

if( document.cookie.indexOf("cookie-name=") >= 0)

Будь ласка, обов’язково використовуйте символ “=”!

2. Витягніть значення файлу cookie за допомогою JavaScript:

Перевіривши, чи існує файл cookie, ви можете знати значення:

if (document.cookie.indexOf("cookie-name="))) {
    var cookieValue = document.cookie.replace(/(?:(?:(?:^|.*;s*)name of the cookies*=s*([^;]*).*$)|^.*$/, "$1");
}

Тоді ви можете просто використовувати речення “якщо”, щоб показати або приховати повідомлення про файли cookie. Наприклад, якщо ви хочете приховати повідомлення про файли cookie лише тоді, коли значення файлу cookie “відвідано”, слід використати таке речення:

if(cookieValue==“visited”){
  ... euer Code zum Verstecken des Hinweises (der genaue Code ist von eurer jeweiligen Website beziehungsweise dem Plugin, das ihr verwendet, abhängig)
}

Детальніше про об’єкт document.cookie можна прочитати у веб-документах MDN.

blank
Антоніо Санчес – корінний житель Іспанії, засновник та генеральний директор Kokoen GmbH, Інтернет-агентства з розробки веб-сайтів та додатків, SEO та соціальних мереж. Як розробник мобільних та веб-додатків, він ділиться своєю пристрастю до програмування зі своєю командою.

Вас це також може зацікавити

Ready to see us in action:

More To Explore

IWanta.tech
Logo
Enable registration in settings - general
Have any project in mind?

Contact us:

small_c_popup.png