Cache – čemu služi

Prilikom svakog zahtjeva za prikaz vaše stranice dolazi do kreiranja zahtjeva prema serveru da ju prikaže sa svim svojim elementima poput html ili php datoteka, CSS datoteka, vašeg logo-a, fotografija i medija te nekih drugih resursa koje stranica treba da bi radila. Kako sve to kreira podosta posla procesorima na serverima tu dolazimo do cache-a ili predmemorije. Predmemoriju se definira kao komponenta koja pohranjuje podatke tako da se budući zahtjevi za tim podacima mogu poslužiti mnogo brže.

Predmemorija ili cache služi da presretne zahtjeve na samom početku i prikažu barem one dijelove stranice koje se stalno traže, a time se znatno smanjuje broj zahtjeva poslanih na pozadinske servere ili procese. Normalno je da se mnogi zahtjevi stalno ponavljaju poput zahtjeva za zaglavlje, podnožje, glavne CSS datoteke, teksta nekog popularnog članka i fotografija koje idu uz njega. Ako se poveća broj zahtjeva na stalno iste resurse predmemorija može odgovoriti na isti način i prikazati datoteke koje ima spremljene, a da ne šalje nove zahtjeve na pozadinsku bazu.

Svrha cache-a je da web server ima  manje posla jer predmemorija može poslužiti velik dio sadržaja vrlo brzo i prema velikom broju korisnika.

Čemu služi cache?

Cache nadzire kako dolaze zahtjevi za prikaz HTML stranica, slika i drugih statičnih datoteka (objekata) i pohranjuje njihovu kopiju. No pored statičnih i nepromjenjivih datoteka predmemorija može sadržavati rezultate upita prema bazi podataka, računski intenzivne izračune, API zahtjeve i odgovore, dakle gotovo svaku vrstu podataka koja bi se mogla više puta ponavljati.

Svrha toga je da ubrza kako se učitava web stranica. Kako je brzina učitavanja danas jako bitan faktor u korištenju stranice, onda je i cache vrlo bitan. Rezultat koji vide korisnici je da je stranica  jako brza, a stvarna korist je smanjenje prometa prema serveru jer se najčešće traženi podaci isporučuju izravno iz predmemorije, a ne stalnim zahtjevima prema bazi.

Zašto implementirati cache na stranicu?

Budući da je radna memorija koja se koristi za rad cache-a još uvijek daleko brža od tvrdog diska (magnetskog ili SSD), čitanje podataka iz predmemorije u radnoj memoriji je iznimno brzo (na razinama ispod milisekunde). Toliko značajno brži pristup podacima poboljšava ukupnu izvedbu vaše stranice.

Dobro postavljanje cache-a može biti najvažnija stvar koju na svojoj stranici možete napraviti kako bi radila što brže. Percepcija vaše stranice u očima posjetitelja uvelike ovisi o tome koliko brzo se otvorila, a veliku ulogu u tome ima cache. To ne utječe samo na percepciju posjetitelja nego i na SEO. Ako je stranica brza u učitavanju to znači da će korisniku brže dati traženu informaciju, a time je bitna i za pretraživače pa ju bolje rangiraju.

Kako podesiti cache?

Prilikom podešavanja predmemorije važno je razumjeti valjanost i trajanje podataka koji će biti zadržani u predmemoriji. Uspješan rad predmemorije definira se velikom stopom predviđenih zahtjeva, što znači da su podaci bili prisutni prilikom dohvaćanja i nije bilo potrebno ići u pozadinsku bazu.  Predmemorija može i pogriješiti što znači da u njoj nema podataka koje posjetitelj traži i potrebno je zahvaćanje podataka iz pozadine.

Prilikom posjeta vašoj web stranici posjetiteljev klijent i vaš poslužitelj koriste  HTTP zaglavlja za prosljeđivanje dodatnih informacija prilikom komunikacije. Zaglavlja su glavni alat za kontrolu vaše politike predmemoriranja. Kao vlasnik stranice možete upravljati tim zaglavljima kako bi postavili pravila za rad cache-a. Možete ih koristiti za postavljanje specifičnih pravila, kao što je koliko dugo odgovor koji poslužitelj šalje treba biti u predmemoriji.

Ako želite ući u dublje detalje do možete na ovim poveznicama, ovisno o tome koju vrstu servera koristite

  • NGINX (https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/)
  • Apache (https://httpd.apache.org/docs/2.4/caching.html)
  • Cloudflare Web Server (https://support.cloudflare.com/hc/en-us/articles/202775670-Customizing-Cloudflare-s-cache)

No često nije potrebno ići do tih detalja jer ako već imate neki CMS poput WordPress onda je velik dio posla već odrađen i umjesto da se zamarate  kodovima možete koristiti neki od postojećih dodataka.

Povezani članci

Odgovori