Memorarea în cache a paginii întregi – Nevoia de viteză
Publicat: 2020-10-02
Memorarea în cache a site-urilor web și a paginii întregi sunt tehnici pentru a accelera timpul de încărcare a site-urilor web. Este o practică foarte comună care este folosită aproape peste tot datorită câștigurilor masive pe care le aduce performanței site-ului. Memorarea în cache funcționează făcând serverul web mult mai eficient în a-și face treaba. Memorarea în cache a paginii întregi este o formă mai avansată de stocare în cache, așa că pentru a înțelege stocarea în cache a paginii întregi, să începem cu memorarea în cache normală și să construim de acolo.
Magazinul de piese auto lui Joe – Un site web static

Imaginează-ți Joe. Este un tip care deține și conduce un depozit mare plin de piese auto. În partea din față a depozitului este un tejghea unde sosesc clienții pentru a-i cumpăra piesele. Când un client ajunge să cumpere unele piese, tranzacția urmează următoarea procedură:
- Clientul îi înmânează lui Joe o listă de piese auto.
 - Joe ia prima parte și o pune pe tejghea.
 - Joe ia partea a 2-a și o pune pe tejghea.
 - Și așa mai departe până la sfârșitul listei.
 - Clientul plătește și pleacă.
 
Deci, cum se aplică acest lucru unui site web static?
Un site web static este unul care nu utilizează baze de date, scripturi PHP sau alte programe. Gândiți-vă la un site web simplu care este doar pagini și imagini HTML. Joe și depozitul său reprezintă părțile acestui site simplu astfel:
- Depozitul este serverul fizic.
 - Joe este software-ul serverului web, de exemplu Apache
 - Piesele auto sunt fișierele care alcătuiesc un site web, de exemplu imagini și fișiere HTML.
 
Procedura de servire a acestui site simplu este:
- Un browser solicită o pagină web de la Apache care rulează pe server.
 - Apache citește primul fișier de pe disc și îl trimite în browser.
 - Apache citește al doilea fișier de pe disc și îl trimite în browser.
 - Și așa mai departe până când a luat totul.
 - Browserul afișează pagina web finalizată.
 
Această configurare funcționează bine pentru site-urile web mici, dar eșuează rapid sub presiune.
Joe este ocupat – Memorarea în cache salvează ziua

Sistemul lui Joe funcționează bine până când începe să fie ocupat. Atât de ocupat, de fapt, încât își petrece cea mai mare parte a timpului mergând de la tejghea și în depozit, încât nu poate ține pasul cu toți clienții noi.
Joe ar putea să cumpere un depozit suplimentar și să angajeze pe altcineva să lucreze acolo pentru a satisface cererea suplimentară. Dar acest lucru este costisitor și nu maximizează resursele pe care le are deja. În schimb, Joe se gândește la modul în care și-ar putea eficientiza procesul în depozitul pe care îl are.
Joe își dă seama că 90% din piesele pe care le aduce clienților sunt una dintre doar 10. Așa că decide să păstreze acele 10 piese sub tejghea de unde le poate lua imediat când cineva le cere. Acum poate servi majoritatea cererilor clienților direct de la ghișeu, fără a deplasa în depozit. Acest lucru este mult mai rapid.
Memorarea în cache face ceva foarte asemănător pe un server web. La fel ca la întoarcerea lui Joe în depozit, cea mai lentă acțiune atunci când se difuzează fișiere statice este încărcarea fișierului de pe dispozitivul de stocare. Ceea ce face memorarea în cache este să păstreze fișierele cele mai frecvent solicitate în RAM, unde pot fi accesate de mii de ori mai rapid decât citirea lor din stocare.
Acest tip de stocare în cache funcționează excelent pentru imagini și alte fișiere statice, dar WordPress este un site web dinamic cu scripturi PHP și bază de date.

Introduceți memoria cache a paginii întregi.
Viața lui Joe se complică – PHP, baze de date și caching

Un nou atelier Toyota se deschide în același oraș cu Joe și îl folosesc pe Joe pentru a furniza piesele de schimb. Acest lucru este grozav pentru Joe, cu excepția unei singure probleme, Toyota comandă doar piese după numărul lor de piesă Toyota. Îi oferă lui Joe un catalog uriaș, astfel încât să poată căuta numerele de piesă Toyota și să le potrivească cu piesele din depozitul său ori de câte ori primește o comandă de la ei.
Dar asta îl face pe Joe să încetinească din nou.
Oricând trebuie să caute piesa Toyota în catalog, îi ia mult timp. Chiar dacă este una dintre piesele de sub tejghea, el nu poate ajunge la ea pentru că mai întâi trebuie să caute numărul piesei Toyota în catalog. Vechiul său sistem de păstrare a celor mai solicitate 10 piese sub tejghea îi ajută în continuare, dar noile căutări în catalog sunt acum marele blocaj.
Joe se gândește din nou la asta și vine cu o soluție. El observă că majoritatea comenzilor Toyota fac parte dintr-un grup mic. Așa că el scrie o foaie de cheat cu cele mai comune numere de piese Toyota și piesele corespunzătoare ale acestora și o lipește pe blat.
Acum nu mai are nevoie să folosească catalogul pentru majoritatea comenzilor Toyota, el poate arunca o privire la cheatsheet și poate converti numărul piesei Toyota aproape instantaneu într-o piesă pe care o poate prelua.
Site-urile WordPress au o problemă similară cu Joe. WordPress construiește fiecare pagină web atunci când aceasta este solicitată de browser. Paginile HTML pe care le încarcă browserul dvs. nu există până când nu le cereți WordPress.
Acesta este modul în care WordPress creează o pagină a site-ului dvs.:
- Un browser solicită o pagină web de la WordPress.
 - Un script PHP acceptă cererea și interogează baza de date pentru ceea ce are nevoie pentru a construi pagina.
 - Baza de date caută și returnează toate informațiile procesului PHP.
 - Scriptul PHP construiește pagina cu acele informații și o trimite către browser.
 
Aceasta este multă muncă și este motivul pentru care site-urile web WordPress care nu sunt stocate în cache au nevoie de multe ori mai multe resurse de computer decât site-urile web statice.
La fel ca Joe, site-ul tău WordPress primește foarte des solicitări pentru aceleași pagini, cum ar fi pagina de destinație a site-ului tău, deoarece această pagină este difuzată de fiecare dată când sosește un nou vizitator. Într-o configurare fără cache, WordPress trebuie să proceseze această solicitare cu script-uri PHP și să facă interogări de bază de date pentru fiecare vizitator, chiar dacă creează exact aceeași pagină de fiecare dată.
Acest lucru duce la o mare cantitate de muncă duplicată.
Memorarea în cache pe pagină completă rezolvă această problemă. Observă că o anumită solicitare și pagina care este generată sunt întotdeauna aceleași, așa că memorează în cache o copie a paginii în RAM. De asemenea, păstrează o foaie de cheat cu solicitările care au creat acele pagini, astfel încât, atunci când un vizitator solicită o pagină pe care a generat-o înainte de a o servi direct din RAM, mai degrabă decât să o recreeze.
Acest lucru reduce semnificativ sarcina de lucru a serverului web, ocolind multe procese PHP și căutări de baze de date și prin servirea paginilor generate anterior direct din RAM. Acest lucru vă poate oferi un site WordPress dinamic, care este aproape la fel de eficient ca un site web static.
Memorarea în cache și stocarea în cache pe pagină completă sunt tehnologii excelente care valorifică resursele serverului dvs. web pentru a maximiza eficiența serverului dvs. web și pentru a vă oferi un site WordPress rapid.
