Sahifa keshi, CDN lar va rozilik bannerlari: notoʻgʻri rozilik holatini koʻrsatishdan qanday qochish kerak
Tez sahifalar, notoʻgʻri rozilik
Sahifa keshlash tezlik va hosting xarajatlari uchun qilishingiz mumkin boʻlgan eng yaxshi ishlardan biri. Shu bilan birga, u rozilik sozlamalarini sezdirmay buzishning eng oson yoʻllaridan biri. Kesh aynan unga aytilgan narsani bajaradi: javobni bir marta saqlaydi va bir xil kalitga mos keladigan hammaga beradi. Saqlangan javobda bir tashrif buyuruvchining rozilik tanlovi yoki joylashuviga xos biror narsa boʻlsa, keyingi tashrif buyuruvchi ham uni oladi.
Ushbu qoʻllanma nashriyotchi sayti oldida odatda turadigan keshlash qatlamlarini — CDN edge keshlari, toʻliq sahifa keshlash plaginlari, reverse proxy lar, service worker lar va brauzerning oʻzi — hamda ularning har birini notoʻgʻri rozilik tajribasini koʻrsatishdan qanday saqlashni qamrab oladi.
Asosiy qoida: rozilikni keshlangan HTML dan tashqarida saqlang
Eng xavfsiz arxitektura keshlangan HTML sahifani rozilik jihatidan neytral qilib shakllantiradi. Sahifada CMP yuklagichi va teglaringiz bloklangan yoki kutish holatida boʻladi, lekin shu tashrif buyuruvchi haqida hech qanday qaror boʻlmaydi. Keyin CMP brauzerda ishlaydi, saqlangan tanlovni oʻqiydi, bannerni koʻrsatish-koʻrsatmaslikni hal qiladi va teglarni shunga qarab ishga tushiradi.
Muammolar server rozilik boʻyicha qarorlarni render vaqtida qabul qilganda boshlanadi, masalan:
- faqat rozilik cookie fayli mavjud boʻlganda reklama yoki tahlil teglarini chiqaradigan mavzu yoki plagin;
- allaqachon tanlov qilgan tashrif buyuruvchilar uchun banner markupini tushirib qoldiradigan server tomoni kodi;
- tashrif buyuruvchining rozilik holatini inline skript oʻzgaruvchisiga joylaydigan shablonlar.
Bu sahifa keshlangach, birinchi tashrif buyuruvchining holati hammaning holatiga aylanadi. Kuzatuvni rad etgan tashrif buyuruvchi teglari allaqachon faol sahifani olishi mumkin, yoki yangi tashrif buyuruvchi bannerni umuman koʻrmasligi mumkin, chunki keshdagi nusxa uni allaqachon yopgan kishidan olingan.
Nega “Vary: Cookie” kamdan-kam yechim boʻladi
Tashrif buyuruvchiga xos kontent uchun darslikdagi yechim keshlarga cookie sarlavhasi boʻyicha farqlanishni aytishdir. Amalda tashrif buyuruvchilar noyob qiymatli koʻplab cookie larni olib yuradi, shuning uchun butun cookie sarlavhasi boʻyicha farqlash odatda kesh hit darajangizni deyarli nolga tushiradi. Baʼzi CDN lar kesh kalitini oʻrniga bitta cookie qiymatidan yasashga ruxsat beradi; rozilik cookie fayli ehtimoliy holatlari soni kam boʻlsa, bu ishlaydi, ammo murakkablik qoʻshadi va keshlangan nusxalar sonini baribir koʻpaytiradi. Qarorni brauzerga oʻtkazish oddiyroq va keshni samarali saqlaydi.
Edge dagi geografiya
Koʻplab nashriyotchilar hududga qarab turli bannerlar koʻrsatadi: EI va Buyuk Britaniya uchun opt-in banneri, AQSh shtatlari uchun opt-out bildirishnomasi, boshqa joylarda esa yengilroq narsa. Server variantni tashrif buyuruvchining IP manzilidan tanlasa va bu sahifa keshlansa, yevropalik oʻquvchi keshlangan AQSh sahifasini olishi mumkin yoki aksincha.
Buni uch namuna bartaraf etadi:
- Mijoz tomonida geolokatsiya. CMP hududni brauzerda aniqlasin, shunda keshlangan HTML hamma uchun bir xil qoladi.
- Kesh kalitida mamlakat. Qarorni edge da qabul qilishingiz kerak boʻlsa, CDN taqdim etadigan mamlakat kodini kesh kalitiga qoʻshing. Har bir mamlakat uchun bitta keshlangan nusxa olasiz, bu oldindan aytib boʻladigan holat.
- Keshlanmaydigan edge mantiqi. Hududiy qarorni edge funksiyasida bajaring, u aks holda keshlangan sahifaga kichik, keshlanmaydigan qiymat kiritadi.
Qaysi birini tanlamang, hujjatlashtiring. Geo xatolarni takrorlash eng qiyin xatolardan, chunki ular faqat bir joydagi tashrif buyuruvchilarda, boshqa joydagi kishi keshlagan sahifani olgandagina paydo boʻladi.
CMP skriptining oʻzini keshlash
CMP yuklagichini uzoq muddat keshlash unumdorlik uchun yaxshi, ammo sozlamalar oʻzgarganda uning kamchiligi bor. Vendorlar, maqsadlar yoki banner matnini yangilasangiz va skript yoki sozlamalar fayli bir yilga keshlangan boʻlsa, baʼzi tashrif buyuruvchilar eski versiyani koʻrishda davom etadi. CMP fayllarini qanday versiyalashini tekshiring: oʻzgaruvchan fayl nomi yoki versiya parametri oʻzgarishlarni darhol joriy qilib, keshni agressiv ishlatishga imkon beradi. Shuningdek, CMP ularga tayansa, oʻzingizning CDN ingiz uchinchi tomon skript URL laridan query qatorlarini olib tashlamasligini tasdiqlang.
Service worker lar va oflayn keshlar
Progressive web app qatlamiga ega saytlar koʻpincha HTML ni service worker da keshlaydi. Xuddi shu qoida qoʻllanadi: muayyan rozilik qarorini aks ettiradigan sahifani hech qachon saqlamang. Rozilik bilan bogʻliq endpoint lar va sozlamalar markazi sahifalarini service worker keshidan chiqarib tashlang va yangi CMP sozlamalarini doim olish mumkinligiga ishonch hosil qiling.
Orqaga/oldinga kesh (back/forward cache)
Zamonaviy brauzerlar yaqinda koʻrilgan sahifalarni xotirada saqlaydi, shunda “orqaga” tugmasi ularni darhol tiklaydi. Tashrif buyuruvchi bir sahifada sozlamalar markazini ochsa, roziligini qaytarib olsa, soʻng orqaga bosa, tiklangan sahifada teglar hali ham avvalgi holatdan ishlab turishi mumkin. pageshow hodisasini tinglang va uning persisted xususiyatini tekshiring: sahifa shu keshdan tiklanganda, saqlangan rozilik holatini qayta oʻqing va teglarni unga mos ravishda toʻxtating yoki ishga tushiring.
Sinov tartibi
- Sahifani toza sessiyada yuklang, rad eting, soʻng ikkinchi sahifani yuklang va hech qanday kuzatuv tegi ishga tushmasligini tasdiqlang.
- Ikkinchi toza brauzer bilan takrorlang va banner paydo boʻlishini tasdiqlang, bu uning kesh tufayli yoʻqolmaganini isbotlaydi.
- Sahifalar keshdan berilayotganini koʻrish uchun javob sarlavhalarini tekshiring va HTML ni rozilik cookie fayli bilan va holda solishtiring — bir xil boʻlishi kerak.
- Keshni tozalagandan keyin kamida ikki hududdan, soʻng kesh isingandan keyin yana sinab koʻring.
- Roziligni qaytarib oling, orqaga tugmasidan foydalaning va teglar toʻxtashini tasdiqlang.
Asosiy xulosalar
- Keshlangan HTML rozilik jihatidan neytral boʻlishi kerak; qarorni CMP brauzerda qabul qilsin.
- Butun cookie sarlavhasi boʻyicha farqlashdan qoching; u hit darajasini yoʻq qiladi.
- Bannerlar hududga qarab farq qilsa, mijoz tomonida qaror qiling yoki mamlakatni kesh kalitiga qoʻshing.
- Uzoq kesh muddati sozlamalar oʻzgarishini kechiktirmasligi uchun CMP fayllarini versiyalang.
- Service worker lar va orqaga/oldinga keshni hisobga oling, faqat tozalagandan keyin emas, kesh issiq paytda ham sinang.