1. Начало
  2. Уеб сайт
  3. Оптимизиране на уеб сайт
  4. Проверка и статус на кеширането в SuperCache

Проверка и статус на кеширането в SuperCache

В случай че извършвате прецизна настройка на SuperCache, при тестване на опциите му от голяма помощ ще са специалните HTTP статус хедъри, които ще получавате. Системата на SuperCache е настроена да подава определени HTTP хедъри, чрез които можете да установите какъв е статуса й и дали се прилага кеширане на дадения уеб ресурс или не.

Важно: Преди проверка на работата на SuperCache е необходимо да обърнете специално внимание на това, какъв е избрания „вид кеширане при налични Cookies“ и кои „сървърни хедъри са изключени“ за обработка от SuperCache. Тези настройки са достъпни в SuperCache » Разширени настройки – Опции за напреднали.

Как работи кеширането в SuperCache?

SuperCache е система за кеширане и ускоряване в Уеб, която прилага основните похвати и техники на кеширането като Reverse Proxy.

При първо зареждане на дадена страница от сайта, SuperCache ще запази кеширан вариант на страницата за следваща употреба.

Търсената страница не е налична в кеша.
Търсената страница не е налична в кеша.

Cache MISS – (търсената страница не е налична в кеша)

(1) Уеб браузърът изпраща заявка до сървъра, отговарящ за търсения домейн, за уеб ресурса page.html, заявката достига до SuperCache.
(2) SuperCache проверява в кеша за търсената страница и не я намира. Този пропуск се нарича Cache MISS. SuperCache трябва да се допита до сайта, за търсената страница.
(3) SuperCache изпраща запитване за търсената страница до сървъра-източник (сайта).
(4) Сървърът-източник връща на SuperCache търсената уеб страница.
(5) SuperCache получава, копира страницата в кеша и я изпраща към уеб клиента.
(6) Уеб браузърът получава търсения уеб ресурс.

Търсената страница е налична в кеша.
Търсената страница е налична в кеша.

Cache HIT – (търсената страница е налична в кеша)

След като страницата е кеширана, тя се предоставя директно при следващи запитвания, без да се подава заявка към сървъра-източник.

(1) Уеб браузърът изпраща заявка за страницата page.html до сървъра, отговарящ за търсения домейн и заявката пристига при SuperCache (тъй като той се намира пред сървъра-източник).
(2) SuperCache проверява в кеша за търсената страница и я намира (Cache HIT). Директно предоставя уеб страницата към уеб клиента, като този път не се обръща към сървъра-източник.

Проверка и статус на кеширането със SuperCache

Проверка на кеширането може да се извърши или чрез инструмент за разработчици, наличен по подразбиране в по-известните уеб браузъри, или чрез конзола. При проверката се проверява специалния хедър, върнат от SuperCache.

Проверка през браузър

Проверка на HTTP хедърите, получени в отговора от сайта
Проверка на HTTP хедърите, получени в отговора от сайта.

В уеб браузърите Firefox и Chrome се предлага инструмент за разработчици, с който можете да проверите HTTP хедърите, които си разменят уеб браузърът и SuperCache.

За проверка през Firefox или Chrome заредете страница от сайта и изберете F12 (или Ctrl+Shift+K).

В отговора от сървъра проверете HTTP хедърите и потърсете хедъра X-SH-Cache*.

Проверка през конзола

Проверка на HTTP хедърите, получени в отговора от сайта
Проверка на HTTP хедърите, получени в отговора от сайта.

Проверка на HTTP хедърите, в отговора от сайта, може да се извърши и през конзола.

Тестове на кеширането можете да извършите от отдалечена машина.

Ако на машината се поддържа curl, може да използвате например:

curl -I http://cookies.goodexample.eu

cookies.goodexample.eu – заменете с адреса на сайта;

HTTP статус хедъри, които се подават от SuperCache

При зареждане на страница, за която SuperCache ускоряването е активирано, в хедърите на отговора от сървъра ще видите един от следните специални HTTP хедъри:

X-SH-Cache-Status: HIT

Този статус означава, че се сервира вече кеширано съдържание на страницата. Кеширането е активно и функционира.

X-SH-Cache-Status: MISS

Този статус означава, че не се сервира кеширано съдържание. Ако правите първи хит към дадената страница, то ще се върне този статус. При следващо презареждане на същата страница, статусът трябва да е HIT. Ако при всяко следващо зареждане на страницата статусът винаги е MISS, това означава, че има някакво условие, HTTP хедър или HTTP бисквитка, които пречат на кеширането на ресурса.

Този статус може да се получи ако:
– зареждате страницата за пръв път;
– сайтът подава хедъра Set-Cookie, който не е изключен от обработка в SuperCache;
– сайтът подава хедър Cache-Control с директива, която принуждава SuperCache да не кешира.

X-SH-Cache-Status: BYPASS

Този статус означава, че не се сервира кеширано съдържание. Най-честата причина за това е добавена бисквитка като изключена от обработка, което означава, че SuperCache няма да сервира кеш съдържание. BYPASS може да се получи и при изпращане на клиентска бисквитка за удостоверяване, която е системно защитена от кеширане. Тези бисквитки можете да видите по-надолу в статията.

X-SH-Cache-Status: Excluded

Този статус информира, че не се зарежда кеширано съдържание на страницата, защото адресът й е изключен за кеширане. Тази настройка се извършва през опцията „URL адреси, които да не се кешират„.

X-SH-Cache-Disabled: 1

Този статус означава, че кеширането е деактивирано в SuperCache Manager в cPanel. Не се сервира кеширана версия на страницата.

X-SH-Cache-Status: EXPIRED

Този статус означава, че валидността на кешираната версия на страницата, която се сервира, е изтекла и трябва да се превалидира. При следващ хит към страницата, кеш информацията ще се обнови и статусът ще е HIT.

X-SH-Cache-Status: Whitelisted Ip

Този статус означава, че IP адресът, от който се прави заявката към сайта, е изключен за получаване на кеширано съдържание.

X-SH-WhitelistIp: xxx.xxx.xxx.xxx

В този хедър се съдържа IP адресът, от който е направена заявката към сайта.

Особености на кеширането със SuperCache

HTTP бисквитки (HTTP Cookies)

В SuperCache се поддържат три режима на кеширане, засягащи наличието или липсата на HTTP бисквитки (HTTP Cookie) в заявките на посетителите. Видът на кеширане се задава през опцията „Видове кеширане при налични Cookies“ в опциите за напреднали в SuperCache.

За да изберете подходящия вид кеширане при налични Cookies, трябва първо да тествате подробно сайта и да установите всички случаи, при които сайтът подава Cookies. В случай че има Cookie, което позволява на сайта да предоставя персонализирано съдържание, за всеки отделен посетител, тогава то трябва да се изключи от кеширането.

HTTP бисквитки, защитени от кеширане

Някои от най-използваните системи като WordPress, Joomla! и други, ползват точно определени бисквитки за удостоверяване на вече извършена идентификация на потребител. След логване в администрациите на някои от тези системи, потребителите получават бисквитките:

admin=*
wordpress_logged_in*
joomla_user_state=logged_in

Тези административни бисквитки са автоматично защитени от кеширане. Премахването на тази защита не се поддържа.

Когато в заявката си към сайта потребителят изпрати някоя от тези бисквитки, SuperCache ще върне статус X-SH-Cache-Status: BYPASS, няма да приложи кеширане на отговора от сайта и няма да предостави кеширани данни на посетителя.

Ако сайтът ползва бисквитки за удостоверяване, различни от посочените, можете да ги защитите от кеширане през опцията „Кеширай всичко без определени клиентски Cookies„, която се избира от „Видове кеширане при налични Cookies“ в опциите за напреднали. В полето „Не кеширай при налично Cookie“ се въвежда само името на бисквитката.

Административни адреси, защитени от кеширане

По същият начин, както административните бисквитки, някои от административните адреси при известните CMS системи са защитени от кеширане.

Уеб адреси, защитени от кеширане:

/wp-admin
/wp-login.php
/administrator
/admin
/login
/user/login
/?q=user

За разлика от системно защитените бисквитки, защитата за тези уеб адреси може да се деактивира. Това се извършва през опцията „Автоматично добавени URI адреси, които не се кешират“ в опциите за напреднали в SuperCache.

Важно: Ако за достъп до административния панел на сайта използвате уеб адрес, различен от системно защитените, задължително го добавете в опцията „URL адреси, които да не се кешират“ в настройките на SuperCache.

HTTP хедъри, които се подават от сайта

Дали и как даден отговор от сайта ще бъде записан за следваща употреба (кеширан) и до кога ще се пази, зависи от това какви HTTP хедъри идват с него. SuperCache проверява HTTP хедърите в отговора от сайта и се съобразява с някои от тях.

HTTP хедърите, в отговора от сайта, с които SuperCache се съобразява: Set-Cookie, Cache-Control, Expires и Vary.

Бележка: Кешираните данни ще се изчистват през точно определен интервал от време. Глобалният интервал за опресняване на кешираната информация е зададен в настройките на SuperCache в опция „Автоматично изчистване на кеша„. По подразбиране е зададена стойността от 15 минути. Това означава, че кешираната информация за даден уеб ресурс се изчиства на всеки 15 минути. Тоест кешираната информация се премахва и при следващо запитване за този ресурс се генерира нова кеширана информация.

Чрез този хедър уеб сайтът изпраща HTTP бисквитките към посетителите си. Ако отговорът от сайта съдържа поне един хедър Set-Cookie, тогава той няма да бъде кеширан от SuperCache. Това може да се промени от опциите за напреднали, раздел „Изключи обработката на сървърни хедъри„. След като изключите този хедър от обработка, SuperCache няма да се съобразява с наличието му и ще кешира отговора от сайта.

HTTP хедър Cache-Control

Множеството директиви на HTTP хедъра Cache-Control, както и името му подсказва, имат отношение към валидността на отговора от сайта и контролират как кеширащите системи ще го обработват. Това директно повлиява на кеширането на уеб ресурсите и поради това SuperCache е чувствителен към директивите на Cache-Contol хедъра.

HTTP хедър Expires

Този HTTP хедър указва датата, до която отговорът се счита за пресен и актуален. След преминаване на посочената дата, отговорът се приема от системите за кеширане, като остарял и неактуален. SuperCache може да игнорира Expires хедъра, ако в отговора се съдържа другия HTTP хедър – Cache-Control с директива max-age.

HTTP хедър Vary

HTTP хедърът Vary се използва от уеб сайтовете за указване на вариращо съдържание, спрямо определена особеност на посетителите.

Този хедър е предназначен за системите за кеширане като SuperCache, за да се съобразяват при кеширането на информацията. За директиви на този хедър може да се ползват други HTTP хедъри, подавани в HTTP заявките на посетителите например User-Agent, Cookie и други.

Използването на Vary: User-Agent може да доведе до неефективно кеширане. В случай че сайтът подава хедър Vary, с директива, която не е критична за нормалното функциониране на сайта, препоръчително е да я изключите в SuperCache.

Например ако сайтът подава хедър Vary: User-Agent, но реално няма функционалност или съдържание в сайта, което да се различава за различните браузъри (User-Agent), тогава можете да изключите директивата User-Agent в SuperCache.

Можете да изключите определена директива на хедъра Vary, в настройките на SuperCache в опцията „Игнорирани Vary хедъри„.

За да тествате тази особеност през конзола, може да променяте параметъра за User-Agent към curl например:

curl -I -A „MyUserAgent“ http://cookies.goodexample.eu

Бележка: Ако сайтът подава различно съдържание за мобилните и десктоп потребителите си, и използва хедъра User-Agent за да ги различава, тогава User-Agent не бива да се добавя в „Игнорирани Vary хедъри“ в SuperCache.

Вижте още:

🔗 SuperCache Manager by SuperHosting | Help

🔗 Опции за напреднали в SuperCache Manager | Help

🔗 HTTP хедъри (HTTP Headers) | Help

🔗 HTTP хедър – Vary | Help

🔗 Какво е cookie, cookies (бисквитки)? | Help

🔗 Системи за кеширане и ускоряване в Уеб | Blog

Обновена: 12.10.2022
Беше ли Ви полезна тази статия?

Вижте още