ETag vagy Last-Modified
A teszt azt nézi, hogy a nyitóoldal válasza küld-e ETag vagy Last-Modified fejlécet, amellyel a böngésző rövid 304-es válaszból megtudhatja, változott-e az oldal.
Az ETag és a Last-Modified válaszfejléc úgynevezett validátor: a böngésző a következő látogatáskor visszaküldi az értéket (If-None-Match, illetve If-Modified-Since kérésfejlécben), a szerver pedig, ha semmi nem változott, törzs nélküli 304 Not Modified választ ad. A látogató így nem tölti le újra az egész oldalt. Ha egyik fejléc sincs, a lejárt gyorsítótári bejegyzést a böngészőnek mindig teljes egészében újra le kell töltenie.
Hogyan mérjük
Szekció neve “Hogyan mérjük”A riport a nyitóoldal válaszában keresi a két fejlécet.
- Megfelelő: van
ETagvagyLast-Modifiedfejléc (elég az egyik). - Hiba: egyik sincs.
A teszt nem ellenőrzi, hogy a szerver tényleg helyesen kezeli-e a feltételes kéréseket (a 304 választ), csak a fejlécek meglétét nézi. Csak a nyitóoldal HTML-jét méri.
Hogyan javítsd
Szekció neve “Hogyan javítsd”Statikus fájloknál (képek, CSS, JavaScript) a webszerver maga küldi ezeket: az nginx az etag on; alapbeállítással automatikusan generál ETag fejlécet a statikus fájlokhoz, az Apache a FileETag direktívával (alapértéke MTime Size) teszi ugyanezt. A kérdés a dinamikusan előállított HTML-nél merül fel, mert ott a webszerver nem tudja, mikor változott az oldal tartalma.
Ezért nincs egyetlen, minden oldalra érvényes kódrészlet: a helyes ETag vagy Last-Modified érték csak az oldalt előállító alkalmazás ismerete alapján adható meg. A lehetőségek:
- Oldal-gyorsítótár. Ha a HTML kész fájlként vagy gyorsítótári bejegyzésként tárolódik, a gyorsítótár-megoldás dönti el, küld-e validátort; a bekapcsolás után a riporttal ellenőrizd, megjelent-e a fejléc. Lásd az Oldal-gyorsítótár oldalt.
- Az alkalmazás kódja. Az alkalmazás a tartalom módosítási idejéből
Last-Modifiedfejlécet, a tartalom lenyomatábólETagfejlécet küldhet, és a feltételes kérésre304-gyel válaszolhat. - WordPress. A WordPress referenciája szerint a core a
Last-Modified,ETagés304válaszokat csak hírcsatornák (feed) kiszolgálásakor küldi. A hagyományos oldalakra ezt a gyorsítótár-megoldásnak vagy saját kódnak kell adnia.
Ha mindkét fejlécet el tudod küldeni, a web.dev az ETag-et javasolja, mert pontosabb: az ETag a tartalom alapján, a Last-Modified az idő alapján dönt.
Hogyan ellenőrizd
Szekció neve “Hogyan ellenőrizd”Futtasd újra a riportot, vagy parancssorból:
curl -sI https://pelda.hu/ | grep -iE "^(etag|last-modified)"A feltételes kérés működését is kipróbálhatod: az előző válasz ETag értékével küldj If-None-Match fejlécet.
curl -sI -H 'If-None-Match: "ide-az-etag-ertek"' https://pelda.hu/ | head -1Ha az első sor 304 Not Modified, a szerver jól kezeli a feltételes kéréseket.
Készült: