Php és webes

Ahhoz, hogy a hálózat optimalizálása mechanizmus használatával tárolására egy vett HTTP-n keresztül a dokumentumokat a cache az újrafelhasználási célú őket anélkül, hogy a forrás szerver. A dokumentumok a cache elérhető lesz a következő alkalommal, amikor belépnek, kirakodása nélkül az elsődleges kiszolgálóról, amelynek célja, hogy fokozza az ügyfél hozzáférési sebesség hozzá, és csökkenti a hálózati forgalmat.

Gyorsítótáraz maguk kétfélék - helyi és általános. A helyi cache tárolja közvetlenül a kliens lemez, létrehozni és kezelni a böngészőt. Általános - proxy cache szervezet vagy szolgáltató és állhat egy vagy több proxy szervereket. Helyi gyorsítótár van jelen, valószínűleg minden böngésző a jelentős része a közös ember használja az internetet. És ha egy kis töredéke a helyek most becsült forgalom, a letöltési sebesség - egy fontos szempont, hogy figyelembe kell venni a fejlődő web-projekt.

Tárolható a cache az oldal határozza meg a dinamikus információk az adatforrás. Így szükséges, hogy a cache határozza meg te alapján várható élettartamukat oldal.

Amikor kiválasztja a minta az adatbázis (például a keresést a felhasználó által beírt szó), akkor ezt az oldalt biztos, hogy kérje a szerver minden hívás nélkül használni cache, mint a több kért kívánt szavakat hatalmas, és ha azt is meg kell küzdeniük a változó adathalmaz, caching értelmetlen. Vagy jön a képző tegyük fel menetrend jön a látogatókat (ami változik minden látogatás, hogy gyakorlatilag minden hívás), akkor a cache egyszerűen káros.

Azonban, ha beszélünk ugyanazon a grafikonon, de tegnap, a cache ajánlott, mivel ezek már nem lehet változtatni, és meg tudjuk menteni magunkat, és a felhasználó erőforrásokat és időt tölteni ezeket az oldalakat helyezi azokat egy helyi vagy megosztott gyorsítótár. Ennek folytatása ez a helyzet, amikor megalakult a menetrend nem valós idejű, és óránként. Akkor lehet megjósolni a dátumot a végén a „eltarthatóság” generált adatokat.

PHP-vezérlő program cache működésének eredményéről, így további mezők fejlécében HTTP-válasz kihívás Header () függvényt.

Néhány általános kijelentések jellemző nem csak az a PHP-program:

  • Pages továbbított POST soha nem tárolja a cache.
  • Pages kért GET és paramétereket tartalmazó (az URL jelen van „?”) Nem a cache, ha másképp nincs feltüntetve.

Így a legtöbb esetben további utasításokat a program nem kell hozzá. Főbb kell hozni a figyelmet lehet kettőre:

  • tilalmat cache dokumentumok cache alapértelmezett
  • caching dokumentumok, amelyeket nem lehet az alapértelmezett cache-t.

Ez a probléma a PHP-script hívják paraméterek nélkül, vagy az index könyvtárak, de az adatokat generáló személyesen alatt a felhasználó (például cookie-k alapján vagy a felhasználói ügynök), vagy dolgozik alapján gyorsan változó adatokat. A HTTP / 1.1 tudjuk működtetni következő területeken:

  • Lejár - Meghatározza lejárati dátuma a dokumentumot. Beállítása, hogy a múltban határozza meg a tilalom a cache az oldalt.
  • Cache-Control: no-cache - a cache-menedzsment. Az érték a no-cache határozza tilalmat cache ezt az oldalt. A változat a HTTP / 1.0 működik "Pragma: no-cache".
  • Last-Modified - Dátum Legújabb egyik tartalmi változtatásokat. A mező tényleges csak statikus oldalakat. Apache helyettesíti ezen a területen a mező értéke Date dinamikusan generált oldalak, köztük tartalmazó oldalakat SSI.

Az oldalon www.php.net adni a következő kódot letiltani cache-t.

Úgy gondolom azonban, hogy ez a fejlécet is felesleges. A legtöbb esetben:

Ha egy adott dokumentum „elavult” kell létrehozni lejár megegyezik a dátuma mezőben.

Nos, nem szabad elfelejteni, hogy a nyomtatvány kért POST szintén nem tartoznak a cache-t.

Az inverz probléma, úgy tűnhet első pillantásra abszurd. Azonban ebben van szükség. Amellett, hogy az egyszerű minimalizálásával a forgalom a fejlesztés web-programnak figyelembe kell vennie a kényelmet dolgozik a felhasználó azt. Például egyes kiszolgáló oldalak alapján generált statikus tömeg adatokat. Az a lehetőség, beleértve azokat a cache-szerver nagymértékben növeli a sebességet a felhasználó, és részlegesen enyhíti a következőtől számos regenerálódás ezen az oldalon. Cím teszi a tárolást a proxy szerver:

Gyorsítótárral lejárta előtt a helyességét

A fenti megoldás nagyon egyszerű, bár alkalmas a legtöbb feladatot. De a protokoll HTTP / 1.1 eszközökkel rendelkezik több vékony kezelése cache oldalak, és vannak olyan feladatok használatát igénylő ezeket a mechanizmusokat. Példaként - web-alkalmazások adatokkal dolgoznak egy nagy térfogatú, és megjósolta a dinamizmus. Az adatok helyességét a módon lehet beállítani a dátumot az előrejelzés frissítéseket, és módosítja a tartalmat. Ezekben az esetekben a különböző cache fejléceket.

A fő feladat -, hogy egy dátumot a következő hétfőn az RFC 1123 méret

Egy másik megközelítés használják nagyobb működési frissítési információt és egyidejűleg magas szerver forgalom (egyébként caching nem lenne hatékony) használata Cache-Control fejléc: max-age = másodperc az az idő, ami után a dokumentum tekinthető elavult, és egy magasabb prioritást kiszámítása " frissesség „a dokumentum.

Ha közzéteszi hírek egy 30 perces időintervallumon belül:

Tekintsük a példát kibocsátó egy képet egy adatbázis alapján azonosítjuk azonosítót. Hívjon az oldalon a következők:

így a szabályok szerint az oldal nem tárolja a cache (vannak olyan paraméterek), de a fejléc lehet irányítani.

És kellemes (vagy kellemetlen) az üzenet az orosz Apache felhasználók. Régi idők óta a szerver ad a felhasználónak kódolt automatikusan ellátja minden oldalon (nem csak a dinamikus) fejléc tilalmat cache-t.

Annak érdekében, hogy minden oldal nincs a gyorsítótárban. Formáció elévülési fejlécben script nincs hatása. Miért kell ezt csinálni, és néhány, a módszerei a harc vannak leírva apache.lexa.ru és nincs szükség reprodukálni ezeket a tippeket itt. Figyelembe véve a munka PHP + Apache orosz Itt van, hogyan lehet hatással a cacheability.

Szkriptek, levezeti a képeket a helyzet egyszerű - orosz Apache nem újrakódolni (tehát nem ustanavlivaetsrok lejárati) dokumentumok MIME-típusának image / *. Ahhoz, hogy a cache a szöveges dokumentumok valószínűleg használja a „Cache-Control: saját, max-age =” megoldani az oldalak cache a böngésző. Bár ez az elméleti feltételezés nem bizonyított.

„Lejárat -. Meghatározza a lejárati dátumot a dokumentum beállítása az elmúlt határozza meg a tilalom a cache az oldalt ..
Cache-Control: no-cache - a cache-menedzsment. Az érték a no-cache határozza tilalmat cache ezt az oldalt. A változat a HTTP / 1.0 működik "Pragma: no-cache".
Last-Modified - Dátum Legújabb egyik tartalmi változtatásokat. A mező tényleges csak statikus oldalakat. Apache helyettesíti ezen a területen a mező értéke Date dinamikusan generált oldalak, köztük tartalmazó oldalakat SSI.

Az oldalon www.php.net adni a következő kódot letiltani cache-t.

Úgy gondolom azonban, hogy ez a fejlécet is felesleges. A legtöbb esetben:

header ( "Lejár: Thu, január 1, 1970 00:00:01 GMT");

Ha egy adott dokumentum „elavult” kell létrehozni lejár megegyezik a dátuma mezőben.

header (. "Expires:" gmdate ( "D, d M Y H: i: s") "GMT".);

Nos, nem szabad elfelejteni, hogy a nyomtatvány kért POST szintén nem tartoznak a cache-t. "

Half nonszensz, félig elavult, és nem éppen fut,
letiltani cache-elég
fejléc ( "Cache-Control: no-store, no-cache, must-revalidate, max-kor = 0");