http caching
Egy kis caching
Webmesterek gyakran szembesülnek caching: böngésző és a proxy szerver, próbálják felgyorsítani a munkahely, próbáljuk a lehető legnagyobb mértékben a nagyszámú dokumentumot a cache. Ha megnyit egy oldalt az oldal a böngészőben, majd egy másik, majd vissza az első, nagy valószínűséggel a böngésző lesz ez a merevlemezről (vagy akár a memóriából), hol tartja az oldalt az első látogatás.
Nyilvánvaló, hogy ezt a műveletet rendszerint sokkal gyorsabb, mint a szerzés ugyanazt a dokumentumot a hálózatról. Végtére is, az oldal megjelenítéséhez nem csak kap a HTML kódot, de a szivattyú ki az összes hálózathoz kapcsolódó dokumentumokat: CSS-fájlok, képek, scriptek, kialakítva külön fájlok, stb Ha megnézzük a cache mappát a lemezen (IE, ez a mappa általában itt található: «C: \ Documents and Settings \ felhasználónév \ Local Settings \ Temporary Internet Files», Firefox: «C: \ Documents and Settings \ felhasználónév \ Local Settings \ Application Data \ Mozilla \ Firefox \ Profiles \ _sluchaynaya_stroka_. default \ cache »), észre fogod venni, hogy hány fájlt mentette meg a böngésző.
Természetesen a nagy cache felgyorsítja a munkát, de a másik viszont a cache játszhat negatív szerepet.
Például, ha van egy oldal tárolt változatán chat, a felhasználók egyszerűen nem fogja látni az új üzeneteket. Webmesterek gyakran tekintik cache gonosz elleni küzdelem és gonosz a legjobb tudása szerint.
A probléma a gyorsítótár Microsoft Internet Explorer
vagy set elévülési fejléc az utolsó dátum a szkriptet, amely XML-tartalom. A PHP, ez lesz a következő:
ellenőrizze a cache
Javasoljuk, hogy olvassa el a Hogyan adjunk egy új helyszínen, hogy FastVPS
Könnyen belátható, hogy ebben a példában megpróbáljuk kikapcsolni caching recept Wikipedia, és egyszerűen megjelenik az aktuális idő.
Kiváló! Most kattints a fájl teszt-1.php és emlékszik az időt (például írt egy böngésző ablak mellett a Windows órát):
Nagy! Most kattintson a böngésző „Vissza” gombot, majd a „Tovább”:
Upc! Az idő nem változik. Mit jelent ez? Igen, csak ameddig a böngésző egy oldalt a gyorsítótárból. És mi a helyzet a enciklopédikus kódot? Igen, ez nem működik!
Menj a kútfeje
Mi a probléma? A probléma az, visszaélés a válasz fejlécét. A leírás RFC2616 caching könyv egy teljes fejezetet. De, sajnos, a webmesterek gyakran nem olvassa el a leírás. Tehát mit jelentenek azok a címek, hogy csak el? Lássuk őket. Ez nagyon kényelmes, hogy köze van a segítségével egy kiegészítés a Firefox Web Developer Toolbar böngésző. Információkat. Részletek válasz fejlécét (IE-szerű eszköz úgynevezett DevToolbar):
Így telt el a következő fejlécek:
Azaz, „Adj, ha az irat óta megváltozott dátum”, és a szerver válaszol, vagy 200 ( „Ez a dokumentum, hogy megváltozott!” Vagy 304 „A változás nem volt.” De ez a munka, a szervernek továbbítja fejléc last- módosított, és nem csak át, és továbbítja a megfelelő dátumot dokumentum változásokat. De mi, saját kezűleg, és buta enciklopédikus kód teljesen megsemmisült az utolsó reményeket is! vagyis nem csak azt a cache nem tilos, még mindig a keresőmotorok (és pontosabban magukat) kényeztetted alaposan! Miután elküldi az aktuális dátumot dátumot az utolsó változások, emlékszel?
Cache-Control: no-cache, must újraérvényesítés - itt közelebb a témához. Ez kezeli a fejlécet caching, de nem magának, és együtt másokkal. Most már csak azt a parancsot adta: „hogy az információkat a következő lekérdezés nélkül újra ellenőrzés a forrás szerver nem lehet» (Ha a no-cache irányelv nem határozza meg a mező-nevét, majd a cache nem használhatja a válasz, hogy megfelel a későbbi kérelem nélkül sikeres újraérvényesítés a származási szerver). Alapvetően olyan módon - a csapat nem a böngésző és a proxy szerver.
Pragma: no-cache - régi design. Ez egy régi változata HTTP / 1.0 protokollt. Szinte minden böngésző és a proxy figyelmen kívül hagyja. Tehát azt látjuk, hogy nem a mi sornyi PHP kód cache valóban nem tiltott. Mit kell tenni? Íme:
caching tilalmat
Mentse teszt 1.php fájlt új név teszt 2.PHP és változtassa meg az alábbiak szerint:
Most próbálja meg újra megnyitni a tesztmappát // localhost / teszt-cache /. kattintson a neve test-2.PHP most beváltja a „Vissza” gombot, a „Tovább” gombra. Az idő változik minden alkalommal! És azt mondja, hogy a böngésző nem vesz egy oldalt a gyorsítótárból, ha váltás előre / hátra, és újra kéri a szerverről. Mi az, sőt, mi lenne szükség. Lássuk a válasz fejlécet:
Ez az! Elhaladunk két csoportba sorolható:
Cache-Control: no-store - az oldal tartalmazza a személyes adatok a cache nem lehet megmenteni! (A cél a nem bolti irányelv célja, hogy megakadályozza a véletlen kibocsátás vagy visszatartása érzékeny információk (például a biztonsági szalagokat))
És ezek a főcímek tiltják caching a böngészőben. De még ennél is helyes, hogy adjunk a Cache-Control fejléc és utasítások proxy (teszt-3.php fájl):
Gyakorlati tilalmat caching
Kiváló! Most csak hozzon létre egy mappát a .htaccess fájlt, és adja meg a következő bele:
Mindent! Szükséges fejlécek automatikusan elküldi és különösen az írás már nem szükséges a PHP - a cache már le! Ez könnyen látható, ha megnézzük fejlécek kérelmére küldött minden fájl ebben a mappában:
engedély caching
De annak ellenére, hogy a legtöbb webmester úgy vélik gyorsítótár egyetemes rossz, és próbálják betiltani (és mint láttuk, meglehetősen sikertelenül), ez nem így van! Nem cache, akkor kényszeríteni a böngésző minden egyes alkalommal újra betölti az oldalt a szerver, és ha a kapcsolat a felhasználó gyenge, ez vezethet a jelölt lassul a webhelyen. Én nem beszélek arról, hogy ez vezet a növekedés a terhelést a szerver! Ha az oldal vagy annak egy részét képezi a kéréssel, hogy az adatbázis, akkor amellett, növeli a terhelést az adatbázis szerver, amely negatívan befolyásolja a teljesítményét a szerver általában. Érti, amit mondok, például nézd meg a munka Odnoklassniki! Néhány webmesterek is büszkélkedhet hozza az ilyen „statisztikák” az az oldal alján, a „Page keletkezett 0,9 másodperc telt el 9 SQL lekérdezések.” Semmi, de teljesen értelmetlen építészet webes alkalmazások, nem látszik!
Így próbáljuk a másik irányba, hogy kirak a szerver és felgyorsítja a munka a mi album! És a cache ebben az esetben - az egyik nagy teljesítményű eszközök! Nos, kérem, mondja meg, hogy milyen gyakran változik az oldal „Rólunk”? Vagy mi történik, ha egy felhasználó meglátja hírek ( „Hurrá! Költöztünk egy új motor”) egy óra múlva? Akkor miért tiltják caching oldalak
Próbáld újramentheti tesztünk fájl teszt-4.php nevét, és írja be a következő sorokat benne:
Felbontás cache mappa tartalmát
És akkor is csinálni anélkül, hogy a PHP. Hozzon létre egy almappát a .htaccess fájlt, és adja meg a következő bele:
Lehetőség a lapok a cache jelentősen növeli a web szerver sebessége és részben felszabadítja a sok ismételt látogatások nekik. Engedély caching proxy szerver a fejlécben megadott cím:
ExpiresActive az irányelv tartalmaz caching képek segítségével gyorsabban töltődnek át többször utal a webhely oldalain.
Irányelv ExpiresByType image / jpeg "hozzáférés, valamint 3 napos" és ExpiresByType image / gif "hozzáférés, valamint 3 napos". viszont meghatározza a képformátum és azt az időszakot, amelyre caching kerül végrehajtásra. Alapértelmezésben caching végezzük .jpeg formátumú képeket és .gif 1 napig.
Az eredmény, mint mondják, látható szabad szemmel. Ez különösen hatásos tenni weboldal grafikai olyan oldalakat, amelyek változó tartalommal, vagy csak ritkán látogatott oldalak, például az indításhoz.
Csak ajánlás: első teljesen hibakeresést webhely és csak akkor kapcsolja be a caching! Ellenkező esetben, ha fennáll a veszélye a hibákat szürkére és teljesen csalódott a web-alapú Sok szerencsét és sok sikert a cache!