Client-side servere proxy cache cache și resetare forțată
Client Side Caching: servere proxy și resetarea memoriei cache forțată
Într-un post anterior am vorbit despre elementele de bază ale cache client-side. Să aruncăm acum o privire la modul în care serverele proxy și cum să accelereze descărcarea cache-ul clientului.
actualizare cache
Înțeles Expiră instalare antet pentru viitorul îndepărtat este faptul că browser-ul face din nou de resurse nu perezaprashival, și descărcat-l din memoria cache locală. Astfel, dacă schimbați cumva conținutul de pe server, utilizatorii „vechi“ nu se va observa aceste modificări, acestea vor continua să primească stiluri și script-urile din memoria cache locală (HTML-documente nu sunt, de obicei, în cache atât de agresiv).
Deci, ce se poate face cu această problemă? După cum vă pot spune browser-ului pentru a actualiza aceste resurse?
Principalele modalități de a actualiza memoria cache
Există două moduri principale în care se reîmprospătează conținutul dorit în browser-ul utilizatorului.
- Adăugați la numele fișierului GET-parametru care va semnala o nouă stare a conținutului. De exemplu:
Ambele metode de a schimba URL-ul fișierului, forțând astfel browser-ul să-l descărcați din nou.
Servere de actualizare cache și proxy
Prima metodă este mai ușor de implementat, dar există o serie de caracteristici importante asociate cu utilizarea acesteia. Unele servere proxy nu cache URL-ul care conține Parametrii GET (de exemplu, cum URL-ul, la fel ca în primul exemplu: styles.css, în cazul în care un număr mare de utilizatori la un site al unei rețele care se află în spatele unui server proxy, fiecare utilizator va încărca fișiere cu get-parametrii în mod independent, ocolind mecanismul de cache a serverului proxy. Aceasta poate afecta viteza de site-ul și chiar să conducă la situații critice.
Dar este posibil să se folosească a doua metodă, astfel încât să nu se schimbe numele fișierelor în sistemul de fișiere? Este posibil pentru a obține rezultatul dorit, schimbarea numai codul HTML? Tu poți!
Rescrieți reguli în Apache
server web Apache are un mecanism ascuns puternic redirecționări la fișierele locale, așa-numitele redirecționări interne. Efectul dorit poate fi realizat doar cu o pereche de reguli pentru toate tipurile de fișiere care urmează să fie în cache. Pentru un al doilea exemplu, ce versiune a fișierului conține reguli posle.v va arăta în felul următor:
Datorită acestor norme, au cerut dosarul oricărei versiuni va fi redirecționat la fel de echivalentul lor fizice. Acesta va fi suficient doar pentru a schimba versiunea fișierului în URL-ul și browser-ul cere din nou fișierul.
Automat cache Actualizare
Există o soluție pentru a automatiza procesul de actualizare în cache-ul client al tuturor fișierelor modificate. Dar nu totul este roz.
Deoarece Web Instrumentul de optimizare a combina toate resursele într-un singur fișier, fiecare resursă, care face parte din dosarul final necesar pentru a verifica Moră atribut (timpul de modificare). Dacă există modificări care aveți nevoie pentru a combina din nou resursele. Dificultățile asociate cu această verificare va fi discutat într-un alt articol, dar este important mai presus de toate este faptul că acest proces este foarte mari consumatoare de resurse, mai ales dacă exercitarea cu fiecare solicitare de pagină.
Puteți, cu toate acestea, memoria cache toate controalele anterioare într-un singur fișier și să verifice numai mtime-l. Acesta este timpul de modificare implicită este verificat doar CSS sau un fișier JS și, dacă este necesar, modificați URL-ul fișierului (GET-parametru prin adăugarea sau schimbarea numelui fișierului). Această abordare se aplică la toate fișierele pe care doriți să cache pe partea de client. Rezultatul va arata ceva de genul:
/cache/website.css văzut din exemplul primului fișier de timbru dată adăugat ca GET-parametru, iar al doilea ca parte a URL (care este procesat folosind reguli Apache mod_rewrite și transformate în /cache/website.css).
schemă generală
Deci, ce este algoritmul cache pe partea de client de pe site-ul web?
- Verificați pentru a vedea dacă există un fișier îmbinată. - dacă nu, creați.
- Verificați fișierul modificat mtime. Dacă este necesar, se adaugă timpul de modificare fișier la URL-ul (utilizând una dintre metodele descrise mai sus).
- Browserul primeste codul HTML cu adresa URL a fișierului fuzionat.
- Browserul verifică dacă URL-ul în cache, și dacă există, procesul se încheie.
- Dacă nu există nici o adresă URL în cache-ul, browser-ul cere un fișier (care a fost deja pregătit pe un server web sau stocate în memoria cache server proxy).
De asemenea, vă recomandăm să citiți articolul despre automatizare cache webo.in.