Veb-saytingiz uchun kesh nazorati sozlamalari bo'yicha eng yaxshi amaliyotlar

Ehtimol siz ba'zida saytga ikkinchi marta kirganingizda u kutilganidek ko'rinmayotganini va ba'zi uslublar buzilib, hamma narsa g'alati bo'lib ko'rinishini payqagan bo'lsangiz kerak. Odatda, ushbu muammoning sababi so'nggi o'rnatilishdan keyin so'nggi o'zgarishlarni olishingizga xalaqit beradigan keshni boshqarish siyosati aniqlanmagan. Ushbu maqolada men sizga har bir joylashuvdan keyin barcha foydalanuvchilar uchun veb-saytingizni yangilashga yordam beradigan kesh parametrlarini va texnikasini ko'rsataman.

Sizdan eng yaxshi tajribani olishni va ulardan foydalanishni boshlamoqchi bo'lganlar uchun maqolaning oxiridagi havolani bosing.

Sahna orqasida kesh qanday ishlaydi?

Veb-sayt / resursga qilingan har bir so'rovda sizning brauzeringiz mahalliy xotiradan keshlangan ma'lumotni o'qib, iloji boricha kamroq ma'lumotlarni yuklashga harakat qiladi. Bu faqat brauzer uchun yetarli ko'rsatmalar berishimiz, qanday manbalarni saqlash kerakligi va qancha vaqt davomida tushuntirishimiz mumkin.

Ushbu ko'rsatmalar ko'rsatmalar sifatida ishlaydi; ular haqida brauzeringizga xabar berish uchun ularni HTTP sarlavhasi haqidagi ma'lumotlarga javob berish uchun qo'shishingiz kerak. Keshlash jarayoniga jalb qilingan eng keng tarqalgan ko'rsatmalar: "Keshni boshqarish", "Muddati", "Etag" va "So'nggi o'zgartirilgan".

Deyarli har bir veb-serverda sarlavhali javoblarda kesh sozlamalari mavjud, ammo kesh siyosati bo'lmasa, nima olishimiz aniq emas.

Keshni boshqarish sozlamalarini ishlatmasdan, brauzer resurslar uchun har qanday so'rov uchun veb-serverga o'tadi va undan ma'lumotlarni o'qiydi. Bu ta'sirlangan saytning yuklanish vaqtini ko'paytiradi, ma'lumotni uzatishda veb-serveringizga qo'shimcha yuklarni qo'shadi va sizning orqangizga qo'ng'iroqlar sonini ko'paytiradi.

So'rovlar kesh sozlamalarisiz oqadi

Nima qilish kerakligini va ma'lumotni serverning ko'rsatmalarisiz qanday keshlashni brauzer hal qiladi. Hozirda, Chrome va Safari har safar kesh yo'riqisiz ma'lumotlarni orqalidan yuklab olishadi. Bu o'zgarishi va turli xil xatti-harakatlarga olib kelishi mumkin, ammo, ayniqsa boshqa platformalarda.

Muayyan fayllar bilan nima qilish kerakligini aniq aniqlash uchun, keshni boshqarish bo'yicha ko'rsatmalarni o'rganishga chuqurroq kirishib chiqing va ularni qadam sarlavhalariga asta-sekin qo'shib, natijani ko'ring.

Etag (tashkilot yorlig'i)

Etag kesh sozlamalaridan biridir. Ushbu HTTP sarlavhasining asosiy g'oyasi brauzeringizga tegishli manbalarga kiritilgan o'zgartirishlar to'g'risida to'liq fayllarni yuklamasdan xabardor bo'lish imkonini berishdir. Server har bir faylning hash summasi bilan o'xshash narsani hisoblashi va keyin ushbu hash summani mijozga yuborishi mumkin. Keyingi safar mijoz ushbu manbaga kirishga harakat qilganda, faylni yuklab olishning o'rniga, brauzer HTTP sarlavhasida shunga o'xshash narsani yuboradi: If-None-Match: W / "1d2e7–1648e509289". Keyin server ushbu hash summani joriy faylning xesh summasiga nisbatan tekshiradi va agar farq bo'lsa, mijozni yangi faylni yuklab olishga majbur qiladi. Aks holda, mijozga keshlangan versiyadan foydalanish kerakligi haqida xabar beriladi.

Talablar Etag - 1-yuk bilan oqadiTalablar Etag - 2-yuk bilan oqadi

Etag kesh siyosati yoqilganda, biz har doim faylning aralash miqdorini tekshirish uchun serverga boramiz va shundan keyingina brauzer uni keshdan olish yoki to'liq yuklashni qaror qiladi. Resurs o'zgartirilmagan bo'lsa, 10KB yoki 10MB fayl bo'lishidan qat'i nazar, so'ralayotganingizdan qat'iy nazar, 80-100 bayt kerak bo'ladi.

So'nggi o'zgartirilgan

Keshni boshqarishning yana bir sozlamasi bu "So'nggi o'zgartirilgan" HTTP sarlavhasi. Asosiy g'oya Etagga juda o'xshash, ammo brauzerning xatti-harakati biroz boshqacha. Serverlar har bir fayl uchun oxirgi o'zgartirilgan sana vaqt jadvaliga ega; birinchi faylni yuklashdan so'ng, mijoz serverga oxirgi marta fayllarni kirishning aniq vaqtidan beri modifikatsiya qilinganmi yoki yo'qligini so'rash imkoniyatiga ega. Buni amalga oshirish uchun brauzer If-Modified-yildan beri: Fri, 13 Iyul 2018 10:49:23 GMT HTTP sarlavhasida. Agar manba o'zgartirilgan bo'lsa, brauzer yangi faylni yuklab olishi kerak, aks holda u keshlangan versiyasidan foydalanadi.

Haqiqat shundaki, brauzerlar ichki kesh siyosatiga ega va keshdan resurs olish yoki yangi nusxasini yuklab olish-qilmaslik to'g'risida o'zi qaror qiladi.

Last-Modified - zaif keshlash sarlavhasi, chunki brauzer elementni keshdan olish yoki olmaslik kerakligini aniqlash uchun evristik usulni qo'llaydi, va evristik ma'lumotlar brauzerlar orasida farq qiladi.
Google keshlash bo'yicha eng yaxshi amaliy qo'llanma
So'rovlar oxirgi modifikatsiyalangan - birinchi yuk bilanSo‘rovlar so‘nggi tahrirlangan - 2chi yuk bilan (mukammal ssenariy)So‘rovlar so‘nggi tahrirlangan - 2chi yuk (umumiy holat)

Natijada, biz faqat Last-Modified-ga ishona olmaymiz, shuning uchun trafikni qisqartirish uchun uni ozgina bayt bo'lsa ham, men o'z serverim sozlamalaridan butunlay olib tashlashni afzal ko'raman.

Keshni boshqarishning maksimal darajasi

Ushbu ko'rsatma brauzerga birinchi yuklanishdan boshlab faylni keshda qancha vaqt ushlab turish kerakligini aytishga imkon beradi. Brauzer faylni keshda saqlash vaqti bir necha soniya bilan aniqlanishi kerak, odatda ushbu Cache-Control: Max-age = 31536000. Ushbu siyosat yordamida brauzer sizning serveringizga so'rovlar yuborish jarayonini butunlay o'tkazib yuboradi va fayllarni juda tez ochadi. Ammo fayl uzoq vaqt davomida o'zgarmasligiga qanday amin bo'lishimiz mumkin? Bizda yo'q.

Shunday qilib, kerakli faylning yangi versiyasini yuklab olish uchun brauzerni majburlash uchun biz Webpack yoki Gulp kabi ko'plab vositalarni quruvchilarning vositalaridan foydalanamiz. Har bir fayl serverda oldindan tuziladi va "app-72420c47cc.css" kabi fayl nomlariga xesh summalar qo'shiladi. Faylga kiritilgan kichik o'zgarishlar ham hash summada aks ettirilgan, bu uning har xil deb tan olinishini kafolatlaydi. Shunday qilib, keyingi joylashtirishdan so'ng, siz faylning yangi versiyasini olasiz. Bu bizning barcha css, js va rasm fayllarimizga tegishli bo'lishi mumkin (max-age = 31536000); biz biror narsani o'zgartirgandan so'ng, brauzer shunchaki keshlanadigan yangi xesh summa bilan yangi faylni talab qiladi.

kesh yo'q

Yuqoridagi texnikaning murakkab tomoni shundaki, siz html fayllaringizni unuta olmaysiz; agar siz ushbu sozlamani shu parametrlarga qo'llasangiz, qayta yuklamaguningizcha hech qachon css, js yoki rasm fayllaringiz uchun yangi havolalarni olmaysiz.

Men sizga Cache-Control dasturini qo'llashingizni maslahat beraman: html fayllarida kesh-kesh yo'q. "Kesh-kesh" qo'llanilishi umuman kesh yo'qligini anglatmaydi, shunchaki keshdan foydalanishdan oldin brauzerda serverdagi manbalarni tekshirishni buyuradi. Shuning uchun uni Etag-dan foydalanishimiz kerak, shuning uchun brauzerlar sizga oddiy so'rov va faylning holatini tekshirish uchun qo'shimcha 80 baytni yuklang.

Yakuniy sozlamalar

  • Css, js va rasm fayllaringizga noyob xash raqamlarni qo'shish uchun (masalan, app-67ce7f3483.css) Gulp, Webpack yoki shunga o'xshashlardan foydalaning;
  • Js, css va rasm fayllari uchun Cache-Control-ni o'rnating: public, max-age = 31536000, Etag yo'q, So'nggi o'zgartirilgan sozlamalar yo'q.
  • Html fayllari uchun Cache-Control: no-cache va Etag-dan foydalaning.

Ko'rinib turibdiki, hatto chuqurroq sho'ng'irsak, aniq va keng tarqalgan narsalar, statik fayllarni keshlash singari, aniq bo'lmasligi mumkin. Yaxshi tadqiqotlar xatolarga yo'l qo'ymasligi va serveringizdagi trafikni kamaytirishi, sayt tezligini yuklanish vaqtini kamaytirishi mumkin.

Agar siz ushbu maqolani foydali deb bilsangiz tugmasini bosing!

Savollaringiz yoki fikrlaringiz? Pixel Point orqali ulaning