В случай че извършвате прецизна настройка на SuperCache, при тестване на опциите му от голяма помощ ще са специалните HTTP статус хедъри, които ще получавате. Системата на SuperCache е настроена да подава определени HTTP хедъри, чрез които можете да установите какъв е статуса й и дали се прилага кеширане на дадения уеб ресурс или не.
Как работи кеширането в 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.
Проверка през браузър
В уеб браузърите Firefox и Chrome се предлага инструмент за разработчици, с който можете да проверите HTTP хедърите, които си разменят уеб браузърът и SuperCache.
За проверка през Firefox или Chrome заредете страница от сайта и изберете F12 (или Ctrl+Shift+K).
В отговора от сървъра проверете HTTP хедърите и потърсете хедъра X-SH-Cache*.
Проверка през конзола
Проверка на 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.
HTTP хедъри, които се подават от сайта
Дали и как даден отговор от сайта ще бъде записан за следваща употреба (кеширан) и до кога ще се пази, зависи от това какви HTTP хедъри идват с него. SuperCache проверява HTTP хедърите в отговора от сайта и се съобразява с някои от тях.
HTTP хедърите, в отговора от сайта, с които SuperCache се съобразява: Set-Cookie, Cache-Control, Expires и Vary.
HTTP хедър Set-Cookie
Чрез този хедър уеб сайтът изпраща 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
Вижте още:
🔗 SuperCache Manager by SuperHosting | Help
🔗 Опции за напреднали в SuperCache Manager | Help
🔗 HTTP хедъри (HTTP Headers) | Help
🔗 HTTP хедър – Vary | Help
🔗 Какво е cookie, cookies (бисквитки)? | Help