Kada budete podešavali SuperCache i testirali njegove opcije, specijalno generisana zaglavlja HTTP statusa će Vam pomoći. Sistem SuperCache-a prikazuje specifična HTTP zaglavlja iz kojih možete videti informacije o trenutnom statusu sistema kao i o tome je li određeni veb-resurs keširan ili nije.
Kako funkcioniše keširanje u SuperCache-u?
SuperCache predstavlja sistem za keširanje i veb-akceleraciju (ubrzanje na mreži) koji primenjuje osnovne tehnike i pristupe keširanja, kao što je reverzni proksi (eng. reverse proxy).
Kada se određena stranica sa veb-sajta učita po prvi put, SuperCache će sačuvati njenu keširanu verziju za buduće potrebe.
Cache MISS – (zahtevana stranica nije dostupna u keš memoriji)
(1) Veb-pretraživač (eng. browser) šalje upit za određenim .html resursom na vebu (.html stranicom) serveru koji odgovara traženom domenu i taj upit stiže do SuperCache-a.
(2) SuperCache pretražuje svoju keš memoriju u potrazi za zahtevanom stranicom i ne nalazi je. Takva nemogućnost da se pronađe zahtevana stranica (veb-resurs) označava se sa “Cache MISS”. SuperCache sada mora da pristupi veb-sajtu (tj. serveru gde je ovaj hostovan) ne bi li našao zahtevanu stranicu.
(3) SuperCache šalje upit (zahtev) za .html stranicom serveru na kojem se veb-sajt nalazi (izvornom serveru).
(4) Izvorni server kao odgovor “vraća” veb-stranicu SuperCache-u.
(5) SuperCache prima stranicu, zatim je kopira u keš memoriju i šalje je natrag veb-klijentu (to je veb-pretraživač, iliti browser korisnika).
(6) Veb-pretraživač dobija natrag traženi veb-resurs (u našem primeru .html stranicu) kao odgovor na inicijalno poslati upit za konkretnom stranicom (veb-resursom).
Cache HIT – (tražena stranica je dostupna u keš memoriji)
Jednom kada se stranica kešira, direktno se “vraća” kao odgovor na upit (zahtev za stranicom, tj. veb-resursom) bez prosleđivanja zahteva ka izvornom serveru.
(1) Veb-pretraživač šalje upit (zahtev) za .html stranicu, serveru koji odgovara traženom domenu i SuperCache prepoznaje taj upit (s obzirom na to da se njegov proksi server nalazi “ispred” izvornog servera na kojem je hostovana tražena stranica)
(2) SuperCache proverava svoju keš memoriju u potrazi za traženom stranicom i pronalazi je (status je “Cache HIT”). SuperCache dostavlja stranicu direktno klijentu, ovog puta bez prethodnog obraćanja (prosleđivanja zahteva) izvornom serveru.
Provera keša i status SuperCache-a
Provera keša može se izvršiti korišćenjem Developer Tool alata kojeg podrazumevano možete naći u najčešće korišćenim veb-pretraživačima (Chrome, Mozilla, Safari), ili preko konzole. Tokom ove procedure proverava se specijalno zaglavlje koje “vraća” SuperCache.
Provera preko veb-pretraživača
Developer Tool alat je dostupan u Firefox ili Chrome veb-pretraživaču, a posredstvom njega možete proveriti HTTP zaglavlja koja su veb-pretraživač i SuperCache (odnosno njegov server) razmenili u međusobnoj komunikaciji.
Da izvršite proveru iz Firefox-a ili Chrome-a, otvorite stranicu i pritisnite na tastaturi F12 (ili istovremeno pritisnite kombinaciju tasteraCtrl+Shift+I).
Proverite HTTP zaglavlja i potražite X-SH-Cache* zaglavlje u odgovoru servera.
Provera preko konzole
HTTP zaglavlja koja veb-sajt šalje u svom odgovoru možete proveriti i preko konzole.
Testiranje kešinga može se izvršiti preko udaljene mašine (tj. na daljinu, eng. remotely).
Ukoliko vaš računar podržava curl softver, evo šta je potrebno da koristite:
curl -I http://home-panelrecover.eu
cookies.goodexample.eu – zamenite sa URL adresom svog veb-sajta;
HTTP statusna zaglavlja koja stižu od SuperCache-a
Kada je veb-stranica učitana, a SuperCache aktiviran, u zaglavljima odgovora sa servera prikazaće se i jedno od napred navedenih specijalnih HTTP zaglavlja:
X-SH-Cache-Status: HIT
Ovaj status označava da je keširani sadržaj veb-stranice prikazan. Keširanje je aktivirano i trenutno aktivno.
X-SH-Cache-Status: MISS
Ovaj status označava da keširani sadržaj nije prikazan. Ukoliko po prvi put posećujete određenu stranicu, dobićete ovaj status. Nakon što se stranica sledeći put učita, status će biti HIT. Ukoliko je prilikom svakog narednog učitavanja stranice status MISS, to znači da je posredi neko stanje, HTTP zaglavlje ili HTTP kolačić (eng. cookie), koje onemogućava keširanje.
Ovaj status može doći i ako:
– je stranica učitana po prvi put;
– veb-sajt u odgovoru vraća Set-Cookie zaglavlje koje nije izostavljeno iz keširanja u SuperCache-u;
– veb-sajt u odgovoru vraća Cache-Control zaglavlje sa direktivom kojom SuperCache-u zabranjuje keširanje.
X-SH-Cache-Status: BYPASS
Ovaj status označava da keširani sadržaj nije prikazan. Najčešći razlog za ovo mogao bi biti kolačić izostavljen iz keširanja, što znači da SuperCache neće prikazati keširani sadržaj. BYPASS status možete videti u odgovoru u slučaju da je generisani kolačić za autentifikaciju klijentaizostavljen iz keširanja. Ove kolačiće (eng. cookies) možete videti u nastavku ovog teksta.
X-SH-Cache-Status: Excluded
Ovaj status ima za cilj da vas informiše da keširani sadržaj stranice nije učitan jer je URL adresa na kojem se isti nalazi – izostavljena iz keširanja. Ovo možete izmeniti u delu “URL adrese izostavljene iz keširanja”.
X-SH-Cache-Disabled: 1
Ovaj status označava da je keširanje u SuperCache Manager-u u cPanel-u deaktivirano. Keširana verzija veb-stranice nije prikazana.
X-SH-Cache-Status: EXPIRED
Ovaj status označava da je važenje (validnost) keširane verzije veb-stranice isteklo i ona se mora validirati ispočetka. Nakon sledeće posete toj stranici, keširani sadržaj biće osvežen (eng. refresh) a status će se promeniti u HIT.
X-SH-Cache-Status: Whitelisted Ip
Ovaj status označava da je IP adresa sa koje je poslat upit ka veb-sajtu – izostavljena iz onih kojima se prikazuje keširani sadržaj.
X-SH-WhitelistIp: xxx.xxx.xxx.xxx
Ovo zaglavlje sadrži IP adresu sa koje je upit ka veb-sajtu poslat.
Specifičnosti keširanja SuperCache-om
HTTP kolačići
SuperCache podržava tri načina keširanja u pogledu HTTP kolačića (eng. cookies) koji se koriste prilikom upita posetilaca sajta. Tip keširanja može se izabrati preko opcije “Tip keširanja pri upotrebi kolačića” dostupnoj u delu “Napredna podešavanja” u SuperCache-u.
Kako bi odabrali odgovarajući tip keširanja prilikom upotebe kolačića, najpre je potrebno da detaljno testirate veb-sajt i definišete sve moguće scenarije u kojima će biti generisani kolačići. Ukoliko postoji kolačić koji omogućava veb-sajtu da svakom korisniku isporuči (prikaže) personalizovani sadržaj, taj kolačić mora biti izostavljen iz keširanja.
HTTP kolačići izostavljeni iz keširanja
Neki od najpopularnijih CMS-ova, kao što su WordPress, Joomla! i ostali, koriste karakteristične kolačiće da bi potvrdili prethodnu korisničku identifikaciju. Nakon pristupanja administratorskom delu nekog od pomenutih sistema, korisnici dobijaju sledeće kolačiće:
admin=*
wordpress_logged_in*
joomla_user_state=logged_in
Navedeni administrativni kolačići automatski su izostavljeni iz keširanja. Uklanjanje ovog odbrambenog mehanizma nije podržano.
Kada korisnik kroz upit pošalje neki od ovih kolačića veb-sajtu, SuperCache će vratiti zaglavlje X-SH-Cache-Status: BYPASS što znači da neće keširati odgovor veb-sajta, niti će prikazati keširane podatke korisniku.
Ukoliko veb-sajt koristi kolačiće za autentifikaciju drugačije od gorepomenutih, njih možete izostaviti opcijom “Keširaj sve osim specifičnih kolačića posetioca” u delu Napredna podešavanja »Tipovi keširanja pri korišćenju kolačića. U polje “Ne prikazuj keširani sadržaj kada postoji kolačić” samo unesite ime kolačića.
Administrativne URL adrese izostavljene iz keširanja
Baš kao i administrativni kolačići, neke od administrativnih URL adresa iz najčešće korišćenih CMS-ova su izostavljene iz keširanja.
URL adrese izostavljene iz keširanja:
/wp-admin
/wp-login.php
/administrator
/admin
/login
/user/login
/?q=user
Za razliku od kolačića, opcija za izostavljanje URL adresa iz keširanja se može deaktivirati. Ovo možete uraditi preko opcije “Automatski dodate URL adrese koje se ne keširaju” u okviru Naprednih podešavanja za SuperCache.
HTTP zaglavlja koja stižu od strane veb-sajta
Da li će odgovor na upit od strane sajta biti keširan i do kada će se keširana informacija čuvati zavisi od HTTP zaglavlja. SuperCache proverava HTTP zaglavlja u odgovoru veb-sajta i usaglašava se sa nekima od njih.
Ova HTTP zaglavlja su: Set-Cookie, Cache-Control, Expires i Vary.
HTTP Set-Cookie zaglavlje
Posredstvom ovog zaglavlja veb-sajt korisnicima šalje HTTP kolačiće. Ukoliko odgovor veb-sajta sadrži barem jedno Set-Cookie zaglavlje, neće biti keširan od strane SuperCache. Ovo se može promeniti iz Naprednih podešavanja » Onemogući procesuiranje navedenih zaglavlja sa servera. Nakon što se ovo zaglavlje izostavi iz procesuiranja, SuperCache se neće prilagoditi i slobodno će keširati odgovor veb-sajta.
HTTP Cache-Control zaglavlje
Validnost odgovora veb-sajta na upit zavisi od nekoliko direktiva iz HTTP Cache-Control zaglavlja koje utiču i na to kako će sistemi za keširanje procesuirati taj odgovor. Ovo direktno utiče na keširanje veb-resursa te se nameće zaključak da je SuperCache osetljiv prema direktivama iz HTTP Cache-Control zaglavlja.
HTTP Expires zaglavlje
Ovo zaglavlje ukazuje na vreme do kojeg se odgovor (sa servera) smatra ažurnim. Ukoliko je odgovor generisan kasnije od navedenog vremena, isti se od strane sistema za keširanje smatra zastarelim i neažurnim. SuperCache može izostaviti Expires zaglavlje ukoliko odgovor sadrži HTTP Cache-Control zaglavlje sa max-age direktivom.
HTTP Vary zaglavlje
HTTP Vary zaglavlje je mehanizam kojim veb-sajtovi obaveštavaju da je sadržaj podložan promenama u zavisnosti od korisničkih specifikacija.
Sistemi za keširanje koriste ovo zaglavlje kako bi se prilagodili ovoj funkcionalnosti prilikom keširanja sadržaja. Kao svoje direktive ono može koristiti druga HTTP zaglavlja generisana u korisničkim upitima kao što su User-Agent, Cookies, itd.
Korišćenje Vary: User-Agent može za posledicu imati neefikasno keširanje. Ukoliko veb-sajt prikazuje Vary zaglavlje sa direktivom koja nije kritična za ispravno funkcionisanje sajta, bolje je izostavite iz SuperCache-a.
Ako veb-sajt prikazuje zaglavlje Vary: User-Agent, a na veb-sajtu nema funkcionalnosti niti sadržaja koji bi se razlikovao (varirao) za različite veb-pretraživače (User-Agent se odnosi na njih) – možete izostaviti User-Agent direktivu iz SuperCache-a.
Konkretnu direktivu Vary zaglavlja možete izostaviti u SuperCache podešavanjima » u delu “Ignorisana Vary zaglavlja”.
Da biste ovo isprobali preko konzole, možete izmeniti User-Agent parametar u curl, npr:
curl -I -A “MyUserAgent” http://home-panelrecover.eu