Ce este un răspuns 304 Not Modified?
Codul de răspuns al serverului HTTP 304 Not Modified indică faptul că resursa solicitată nu a fost modificată de la ultima dată când a fost încărcată, ceea ce înseamnă că nu este nevoie să o transferați din nou. Pentru browsere, acest lucru înseamnă că versiunea în cache a resursei poate fi afișată utilizatorului. Pentru crawlere, cum ar fi Googlebot, înseamnă că nu este necesar să se refacă pagina, deoarece nu s-a modificat nimic în ea.
Cum funcționează
Iată o explicație simplă a modului în care funcționează răspunsul 304 Not Modified:
-
Solicitarea inițială Atunci când clientul (browser sau crawler) solicită pentru prima dată o resursă de la serverul web, serverul trimite resursa solicitată cu un cod HTTP 200 OK, împreună cu codul său hash, numit ETag. Clientul înregistrează, de asemenea, ora la care a solicitat pagina/resursa.
-
Solicitări ulterioare Atunci când clientul solicită din nou resursa, serverul verifică anteturile
If-None-Match
și/sauIf-Modified-Since
de la client. Acest lucru este cunoscut sub numele de cerere HTTP condiționată.If-None-Match
conține ETag (codul hash al conținutului). Dacă se potrivește cu valoarea de pe server, acest lucru indică faptul că conținutul nu s-a modificat și nu este necesar să fie încărcat din nou (atunci când conținutul se modifică, se modifică și codul hash).If-Modified-Since
conține data și ora la care clientul a solicitat ultima dată conținutul. Dacă serverul constată că conținutul nu s-a modificat de la această dată, nu este necesar să trimită resursa către client.
-
Răspunsul serverului În ambele cazuri, dacă conținutul nu a fost modificat, serverul răspunde cu codul HTTP 304.
Atunci când se utilizează atât If-None-Match
, cât și If-Modified-Since
, If-None-Match
are prioritate față de If-Modified-Since
.
Comportamentul browserului și al crawlerilor
Atunci când browserul primește codul HTTP 304 Not Modified de la server, acesta va afișa utilizatorului versiunea din memoria cache, ceea ce face ca acesta să fie unul dintre codurile de redirecționare pe partea clientului. Pentru crawlere, primirea unui răspuns 304 înseamnă că acestea pot evita descărcarea din nou a aceluiași conținut, economisind lățimea de bandă și resursele.
De ce este important codul de răspuns 304?
Pentru site-urile web mici, beneficiile de caching oferite de codul HTTP 304 pot fi mai puțin semnificative. Cu toate acestea, pentru site-urile web mari, codul de răspuns 304 oferă avantaje substanțiale:
- Optimizarea performanței Prin utilizarea conținutului din memoria cache, browserele pot încărca paginile mai rapid pentru utilizatori, îmbunătățind experiența generală a acestora.
- Gestionarea bugetului de accesare Pentru site-urile mari, gestionarea bugetului de accesare este crucială. Google crawler-ul nu va cerceta din nou paginile care nu au fost modificate, permițându-i să se concentreze pe conținutul nou și actualizat. Acest lucru ajută la asigurarea unei indexări mai eficiente a conținutului proaspăt.
Cele mai bune practici pentru utilizarea 304 Not Modified
- Setați anteteleCache corespunzătoare Asigurați-vă că serverul este configurat să trimită antetele
ETag
șiLast-Modified
corespunzătoare. - Monitorizați eficiența memor iei cache Verificați în mod regulat jurnalele serverului pentru a vedea cât de des sunt emise răspunsuri 304 și ajustați politicile de memorare în cache, după caz.
- Optimizarea livrării de conținut Utilizați rețelele de livrare de conținut (CDN) care acceptă mecanisme eficiente de stocare în cache pentru a reduce latența și a îmbunătăți timpii de încărcare.
Pentru informații mai detaliate despre codurile de stare HTTP și cele mai bune practici pentru performanța web și SEO, consultați surse autorizate, cum ar fi Mozilla Developer Network (MDN) și Google's Web Fundamentals.