Bevezetés a HTTP gyorsítótárba
Biztos vagyok benne, hogy észrevette, hogy amikor először nyit meg egy weboldalt, akkor egy kis időbe telik a betöltés. Ha azonban egy idő után újra kinyitja, a webhely sokkal gyorsabban rakódik le. Képzelje el, ha egy webhely minden alkalommal ugyanolyan időbe telik a betöltéshez, milyen lassú lesz a böngészés. Nos, mindez egy remek ötletnek köszönhető, amelyet a HTTP gyorsítótárazásnak hívnak. Vessen egy pillantást arra, hogy mi ez, hogyan működik, és hogyan használják fel az Internet böngészés gyorsabb élményének biztosításához.
Mi a HTTP gyorsítótárazás?
A HTTP gyorsítótárazás az a gondolat, hogy néhány általánosan vagy gyakran használt adatot gyorsan elérni tudjon. Ezzel nagyon jó esély van arra, hogy a leginkább szükséges adatokhoz sokkal gyorsabban férjen hozzá, mivel a számítógépnek nem kell túl messzire mennie ahhoz, hogy megkapja.
Internetes böngészés esetén a gyorsítótárazást akkor veszik figyelembe, ha olyan böngészője, mint például a Chrome egy weboldal vagy webes alkalmazás másolatát tárolja a helyi tárolón. Miután a webhely gyorsítótárazott, a böngészőnek nem kell újra feltöltenie az összes adatot a szerverről, és ez sokkal gyorsabb böngészést tesz lehetővé.
Például, ha letölt egy weboldal CSS-fájlját, a böngészőnek nem kell letöltenie azt a munkamenet minden oldalára. Ugyanez mondható el sok JavaScript-fájl, a Képek (például a webhely logója és a közösségi média ikonjai) és akár néhány dinamikus tartalom esetében is. A gyorsítótárazás a Cache fejlécek használatával engedélyezhető.
Gyorsítótár-fejlécek HTTP-ben
A HTTP gyorsítótárazásnak két fő gyorsítótár-fejléce van, az első „Cache-Control”, a második „Expire”. Vessünk egy pillantást mindkettőre:
Cache-Control
A Cache-Control kapcsolóként tekintheti a gyorsítótárazás bekapcsolását a felhasználói böngészőben. Miután hozzáadta ezt a fejlécet, lehetővé teszi az összes támogatott webböngésző gyorsítótárazását. Ha ez a fejléc nincs, egyetlen böngésző sem tárolja a weboldal tartalmának gyorsítótárát, még akkor sem, ha támogatja a gyorsítótárazást.
A Cache-control kétféle típusú adatvédelmi beállítást tartalmaz: az első nyilvános, a második pedig privát.
Nyilvános esetén az erőforrások bármilyen közbenső proxyval, például tartalomszolgáltatási hálózatokkal (CDN) gyorsítótárazhatók.
A Cache-Control fejléc magánjellegű válaszával jelzi a böngészőnek, hogy a gyorsítótárazás csak egyetlen felhasználó számára történik, és nem a közbenső proxy számára.
A Cache-Control fejlécben a „maximális életkor” érték adja meg azt az időtartamot, ameddig a tartalom gyorsítótár lesz. Ez az idő másodpercben van megadva.
Cache-Control:public, max-age=31536000
Lejár
A Lejárat fejlécet akkor használja, amikor a Cache-Control jelen van a kódban. Ez egy egyszerű HTTP Cache fejléc, amely megadja azt a dátumot, amelytől kezdve a gyorsítótár erőforrásait érvénytelennek tekintik. Amint a gyorsítótár lejár és a felhasználó betölti a weboldalt, egy webböngésző egyszerűen csak az oldal összes tartalmát kéri.
Feltételes kérelmek
A fent tárgyalt fejlécek egyszerűen megmondják a böngészőnek, mikor kell letölteni az adatokat a web-szerverről. A feltételes kérések viszont megmutatják a böngészőnek, hogyan kell letölteni. A Feltételes kérések megmutatják a böngészőnek, hogyan kérdezheti meg a kiszolgálót, ha a gyorsítótárban lévő adatok másolatai elavultak.
Ebben a folyamatban a böngésző adatokat küld a memóriába tárolt erőforrásokról, és az adatok elolvasása után a szerver dönt arról, hogy az adatok elavultak-e vagy sem.
Idő alapú kérelmek
Időalapú kéréseknél ellenőrzik, hogy a kért erőforrás megváltozott-e a szerveren, vagy sem. Ha a böngésző gyorsítótárazott példánya a legfrissebb, akkor a szerver 304 kódot ad vissza.
A Feltételes kérelem időbeli beállításához használhatja a válasz fejlécében az „Utoljára módosított” elemet.
Cache-Control:public, max-age=25998579
Last-Modified: Fri, 08 Jul 2018 15:25:00 GMT
Content Based
A tartalmalapú kéréseknél az MD5 Hash (vagy bármely más megvalósítható lehetőség) ellenőrzése megtörtént mind a kiszolgáló, mind a gyorsítótár másolata szempontjából. Ez azt jelzi, hogy az adatok azonosak-e vagy sem, ha az adatok különböznek, az MD5 ellenőrző összeg nem egyezik meg, és a szerver új forrást küld az erőforrásokról.
Ezt a fejlécben az „ETag” segítségével hajtják végre. Ennek értéke az erőforrások kivonása.
Cache-Control:public, max-age=25998579
ETag: "496d7131f15f0fff99ed5aae”
Láthatóság
Szinte minden modern böngésző tartalmaz néhány fejlesztéssel kapcsolatos eszközt, amelyek lehetővé teszik az erőforrások, a forráskód és a weboldal egyéb szempontjainak ellenőrzését. Ezek között olyan eszköz található, amelyben láthatja az alkalmazás által visszaadott fejléceket.
A Google Chrome-ban ezeknek a fejléceknek a megtekintéséhez kattintson a jobb egérgombbal a weboldal bármely üres területére, majd kattintson az „Ellenőrzés” elemre, vagy nyomja meg a CTRL + SHIFT + I billentyűket a DevTools megnyitásához. Ebben az eszközben kattintson a Hálózat fülre, és nyomja meg a CRTL + R gombot az újratöltéshez, hogy az oldal összes fejléce megjelenjen.
Használjon eseteket a HTTP gyorsítótárban
Az alábbiakban bemutatunk néhány HTTP-gyorsítótárazási felhasználási példát, amelyek a következők:
Statikus eszközökhöz
Egy oldal statikus eszközei, például képek, JS fájlok és bármilyen CSS fájl esetén választhatja az agresszív gyorsítótárazást a tartalomról. Ha nem kell betöltenie ezeket a fájlokat, akkor figyelemre méltó teljesítményjavulást eredményez. Ebben az esetben keresse meg a gyorsítótár-vezérlő fejlécet, amelynek maximális életkor értéke havonta vagy akár egy évnél is nagyobb.
Cache-Control:public; max-age=31536000
Dinamikus tartalomhoz
Egy oldal dinamikus tartalma esetén el kell gondolkodnia, hogy milyen fájlokat kell tárolnia a böngésző gyorsítótárában és mennyi ideig. Abban az esetben, ha a tartalmat gyakran módosítják, akkor ellenőriznie kell, hogy a gyorsítótárazásra kiválasztott idő nem okoz problémát a felhasználó számára.
Privát tartalmak gyorsítótárazása
Amint azt a Cache-Control szakaszban tárgyaltuk, abban az esetben, ha az oldal tartalma magán jellegű, megakadályozhatja, hogy az ideiglenes proxyk, például CDN-k gyorsítótárba kerüljen, ha a fejlécbe hozzáadja a „Cache-Control: private”.
Egy másik biztonságosabb megközelítés az, ha egyáltalán nem tárol privát tartalmat.
HTTP gyorsítótárazás megvalósítása
Most, hogy tudja, mi a HTTP gyorsítótárazás és hogyan működik, nézzük meg, hogyan tudjuk azt a webhelyén megvalósítani. A HTTP gyorsítótárazás megvalósítása kissé különbözik a kiszolgálótípusoktól. Esetünkben nézzük meg a gyorsítótár végrehajtását a .htaccess fájlon keresztül.
A gyorsítótárazás engedélyezéséhez a fejléceket hozzáadhatja a szerver .htaccess fájljába, például:
FilesMatch "\.(ico|pdf|flv|jpg.webp|jpeg.webp|png|gif|js|css|swf)$"
Header set Cache-Control "max-age=31536000, public"
/FilesMatch
A fenti adatok egy évre gyorsítótárba kerülnek a pdf, flv, jpg.webp fájlokba és más, a „File Match” -ben említett formátumokba.
Következtetés
A HTTP gyorsítótárazás az egyik legfontosabb trükk, amely gyorsabb élményt nyújt a webhelye böngészésében a látogatók számára, és mivel most már láthatja, hogyan működik, telepítheti webhelyeire és webes alkalmazásaira, hogy gyorsabbá tegye a felhasználókat és a szerver sávszélességének megtakarításához.
Ajánlott cikkek
Ez egy útmutató a HTTP gyorsítótárazáshoz. Itt tárgyalták a HTTP végrehajtását, a Feltételes kérelmeket, a gyorsítótár fejlécét és a Felhasználási eseteket. A további javasolt cikkeken keresztül további információkat is megtudhat -
- Tudja meg, mi a HTML
- Hogyan telepítsük a Github-ot?
- Mi a MapReduce a Hadoopban?
- Kezdő útmutató a csomópontparancsokhoz
- HTTP sütik | Biztonság