Introducere în cache HTTP

Sunt sigur că ați observat că atunci când deschideți un site web pentru prima dată, este nevoie de ceva timp pentru a încărca. Cu toate acestea, atunci când îl deschideți din nou după ceva timp, site-ul este mult mai rapid. Imaginați-vă dacă un site a luat același timp pentru a se încărca de fiecare dată, cât de lent se va simți navigarea. Ei bine, acest lucru este totul datorită unei idei grozave numită HTTP Caching. Să aruncăm o privire la ce este, cum funcționează și cum este folosit pentru a face Navigarea pe Internet o experiență mai rapidă.

Ce este HTTP Caching?

CTP-ul HTTP este ideea de a stoca unele date frecvent utilizate sau frecvente într-un loc care este rapid accesat. Prin aceasta, există șanse foarte bune ca cele mai necesare date să poată fi accesate mult mai rapid, deoarece computerul nu trebuie să ajungă prea departe pentru a le obține.

În cazul Navigării Web, memoria cache este luată în considerare atunci când browserul dvs. Web, cum ar fi Chrome, stochează o copie a unui site web sau a unei aplicații web în spațiul de stocare local. După ce un site web este memorat în cache, un browser web nu va trebui să reîncarce toate datele de pe server, ceea ce va face navigarea mult mai rapidă.

De exemplu, odată descărcat un fișier CSS al unui site web, un browser nu trebuie să-l descarce pentru fiecare pagină a sesiunii. Același lucru se poate spune pentru multe fișiere JavaScript, Imagini (cum ar fi Logo-ul site-ului și pictogramele Social Media) și chiar pentru un anumit conținut dinamic. Caching-ul este activat folosind anteturile Cache.

Anteturi de cache în HTTP

CTP-ul HTTP are două anteturi de memorie cache majore, primul se numește „Cache-Control”, iar cel de-al doilea se numește „Expire”. Haideți să aruncăm o privire la ambele:

Cache-Control

Puteți considera Cache-Control ca un comutator pentru a comuta memoria în cache în browserul utilizatorului. După ce acest antet a fost adăugat, permite caching-ul pentru toate browserele web acceptate. Dacă acest antet nu este prezent, niciun browser nu va păstra o memorie cache a conținutului paginii web, chiar dacă acceptă memorie în cache.

Cache-control are două tipuri de setări de confidențialitate, primul este public și cel de-al doilea privat.

În cazul publicului, resursele pot fi memorate în cache de orice proxy intermediar, cum ar fi rețelele de livrare a conținutului (CDN).

Un antet Cache-Control cu ​​răspuns privat va spune browserului că memoria cache va fi făcută doar pentru un singur utilizator și nu pentru orice proxy intermediar.

Valoarea „max-age” din antetul Cache-Control stabilește timpul pentru care conținutul va fi în cache. Acest timp este în câteva secunde.

Cache-Control:public, max-age=31536000

expiră

Antetul Expir se utilizează atunci când Cache-Control este prezent în cod. Acesta este un antet simplu HTTP Cache care stabilește o dată de la care orice resursă de memorie cache este considerată nevalidă. După ce memoria cache a expirat și utilizatorul încarcă site-ul, un browser web va cere pur și simplu tot conținutul paginii din nou.

Cereri condiționate

Mai sus anteturile discutate spuneți pur și simplu browserului când să preluați datele de pe serverul web. Cererile condiționale, pe de altă parte, spuneți browserului cum să-l recupereze. Cererile condiționale spun unui browser cum poate cere serverului dacă copia datelor din cache este depășită.

În acest proces, browserul trimite unele date despre resursele pe care le-a introdus în memoria sa, iar după citirea acestor date, serverul decide dacă datele sunt depășite sau nu.

Cereri bazate pe timp

În cererile bazate în timp, se verifică dacă resursa solicitată a fost modificată pe server sau nu. Dacă copia din cache din browser este cea mai recentă, serverul va returna codul 304.

Pentru a seta cererea condiționată în timp, puteți utiliza „Ultima modificare” în antetul răspunsului.

Cache-Control:public, max-age=25998579
Last-Modified: Fri, 08 Jul 2018 15:25:00 GMT

Bazat pe conținut

În cererile bazate pe conținut, MD5 Hash (sau orice altă opțiune viabilă) este verificată atât pentru copia serverului cât și pentru copia cache. Acest lucru indică dacă datele sunt aceleași sau nu, în cazul în care datele sunt diferite, controlul MD5 nu se va potrivi și serverul va trimite o nouă copie a resurselor.

Acest lucru se face prin „ETag” în antet. Valoarea acesteia este digestia resurselor.

Cache-Control:public, max-age=25998579
ETag: "496d7131f15f0fff99ed5aae”

Vizibilitate

Aproape toate browserele moderne includ unele instrumente legate de dezvoltare care vă permit să verificați resursele, codul sursă și alte aspecte ale unei pagini web. Printre ele, puteți găsi un instrument pentru a vedea anteturile returnate de orice aplicație.

Pe Google Chrome, pentru a vedea aceste anteturi, puteți face clic dreapta pe orice zonă goală a unei pagini web și faceți clic pe „Inspect” sau apăsați CTRL + SHIFT + I pentru a deschide DevTools. În acest instrument, faceți clic pe fila Rețea și apăsați CRTL + R pentru a reîncărca pentru a vedea toate anteturile paginii.

Utilizați cazuri în cache HTTP

Mai jos sunt prezentate câteva cazuri de utilizare a cache-ului HTTP care sunt următoarele:

Pentru activele statice

Pentru activele statice ale unei pagini, cum ar fi imagini, fișiere JS și orice fișiere CSS, puteți opta pentru a memora în cache conținut agresiv. Nerespectarea acestor fișiere va avea ca rezultat îmbunătățirea impresionantă a performanței. Pentru acest caz de utilizare, accesați antetul Cache-Control cu ​​valoarea de vârstă maximă mai mare de o lună sau chiar un an.

Cache-Control:public; max-age=31536000

Pentru conținut dinamic

În cazul conținutului dinamic al unei pagini, va trebui să vă gândiți la ce fișiere ar trebui să aibă memoria cache a browserului și cât timp. În cazul în care conținutul va fi schimbat frecvent, va trebui să vă asigurați că durata de timp pe care o alegeți pentru caching nu va duce la nicio problemă pentru utilizator.

Memorizarea în conținut privat

Așa cum am discutat în secțiunea Cache-Control, în cazul în care conținutul paginii este de natură privată, puteți împiedica ca aceasta să fie memorată în cache de către intermediari intermediari, cum ar fi CDN-uri, adăugând „Cache-Control: private” în antet.

O altă abordare mai sigură este să nu cachezi deloc conținut privat.

Implementarea memoriei în cache HTTP

Acum că știți ce este HTTP Caching și cum funcționează, să ne uităm la cum îl puteți implementa pe site-ul dvs. web. Implementarea CTP HTTP este un pic diferită pentru diferite tipuri de server. În cazul nostru, să aruncăm o privire la implementarea caching-ului prin fișierul .htaccess.

Pentru a activa Caching-ul pe site, puteți adăuga anteturile din fișierul .htaccess de pe serverul dvs., de exemplu:

FilesMatch "\.(ico|pdf|flv|jpg.webp|jpeg.webp|png|gif|js|css|swf)$"
Header set Cache-Control "max-age=31536000, public"
/FilesMatch

Cele de mai sus vor cache toate fișierele, pdf, flv, jpg.webp și alte formate menționate menționate în „File Match” timp de un an.

Concluzie

CTP-ul HTTP este unul dintre cele mai importante trucuri care fac din navigarea pe site-ul dvs. o experiență mai rapidă pentru vizitatorii dvs. și acum că puteți vedea cum funcționează, o puteți implementa pe site-urile și aplicațiile web pentru a le face mai rapide pentru utilizatori și pentru salvarea lățimii de bandă a serverului.

Articole recomandate

Acesta a fost un ghid pentru memorarea în cache HTTP. Aici am discutat despre implementarea, Cererile condiționale, antetul memoriei în cache și cazurile de utilizare a HTTP. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Aflați ce este HTML
  2. Cum se instalează Github?
  3. Ce este MapReduce în Hadoop?
  4. Ghid pentru începători pentru comenzile nodului
  5. Cookie-uri HTTP | Securitate