Php és webes

PHP és a Web. Cache-t.

PHP és a Web. Cache-t.

Bevezetés.

Gyorstárazására vagy nem?


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.

Általános elvek megőrzése oldalakat a cache.


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.

Ban cache dokumentumok cache alapértelmezett


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:

Gyorsítótárral dokumentumok, amelyeket nem lehet cache alapértelmezés


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:
    header ( "Cache-Control: public");

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.

Gyorsítótárral előrejelzett frissítése

gyorsítótárral tartalom

így a szabályok szerint az oldal nem tárolja a cache (vannak olyan paraméterek), de a fejléc lehet irányítani.
    mysql_connect ( "host", "felhasználó", "passwd");

$ Image = mysql ( "db", "válassza pics, típusát a kép, ahol id = $ id");

Header ( "Cache-Control: nyilvános, must újraérvényesítés");
Header ( "Vary: Content-ID");
Header ( "Content-ID:" .md5 (mysql_result ($ image, 0, "képek")));

Header ( "Content-type:" .mysql_result ($ image, 0, "type"));

echo mysql_result ($ image, 0, "képek");
mysql_freeResult ($ image);
mysql_close ();

Megjegyzések az orosz Apache

É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.
    Lejár: Thu, január 1, 1970 00:00:01 GMT

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.