If-Modified-óta, és - cache - - Román Parpalaka

Azt szeretem a PHP, ezért erre a zseniális dolog rajta van írva néhány sort. Ebben a cikkben, én továbbra is beszélni a helyes használata fejlécek PHP. Ha érdekel, hogy a webhely indexelve a keresőmotorok, ha szeretné menteni egy kis forgalom, úgy találja, hogy pontosan mire van szüksége.

Köztudott, hogy a böngésző oldalon caching csökkenti a terhelést a szerveren. De gyakran frissített oldalak van egy nagy hátránya: az információt a cache elavulttá válhatnak, és nem felel meg a valós adatokat.

Minden egyes dokumentumot, hogy a szerveren, kívánatos, így a cím Last Modified (beleértve a megfelelő indexelés, például a Yandex):

A gyakran frissített oldalak (nem mondom, „dinamikus”, mert az oldal lehet gyűjteni minden egyes alkalommal a PHP értelmező, de valójában igen ritkán változnak), akkor letilthatja caching a következő sor fejlécek:

Elvileg megfelelő működése a helyszínen, hogy elég volt. Azonban ahelyett, hogy a teljes tilalmat caching jobb, hogy egy rugalmasabb mechanizmust használ az If-Modified-Since fejlécet. Jelen van a lekérdezés böngésző, ha van egy cache dokumentum másolatát és annak jelentését - néhány időpont változtatások ezt a példányt. A PHP-script nézd meg a dátumot, és dönt arról, hogy megadja-egy friss böngésző oldalon, vagy a jelentés, hogy az oldal nem változott, 304 küldött válasz nem módosul. Együtt küldő fejléc Last-Modified. A kód a következő lesz:

Az a tény, hogy a legújabb verzióját az Opera és a Firefox rendszeresen megismételni a tartalmát a fejléc Last-Modified válasz a szervertől a kérelem fejlécében If-Modified-Since (ezért kellett beállítani a Last-Modified), és egy teszt az egyenlőség is jól csinálni anélkül. De, mint mindig, nem mentes a kiszámíthatatlan IE 6. Ez a fejléc If-Modified-Since beállítást hozzáteszi hosszát. és mi az első probléma. Ez megoldható a strpos funkciót. ha nem a második probléma - Trükkök csúszómászó. Mindegyikük (kivéve a robot Rambler, amely működik a fentiek szerint rendszerben) cím If-Modified-Since (ha nem használják) továbbítjuk nem az érték a Last-Modified. időpontja és az utolsó letöltése a dokumentumot. Ilyen helyzet nélkül már nem az, hogy az átadó nyúlik unixstamp (ami date2unixstamp funkció).

Ha letiltja a cache-oldalak működnek no_cache. Az Opera és a Firefox elérésekor egy oldalra, használja a mechanizmust If-Modified-Since fejlécet. és jogosan. Ez azt jelenti, cache még folyamatban van, de a böngésző megkérdezi a kiszolgáló, ha változott a lap ténylegesen vagy sem. Ugyanakkor a tilalmat az IE cache szerint kell érteni. A kísérletek során világossá vált, hogy ha három címet no_cache távolítsa el a második, IE verziók 6. és 7. kezd dolgozni akarunk. Hasznos lehet a helyes használatát elévülési fejlécben. Lehetőség van beállítani az időt, amely alatt csak a helyi másolatot a dokumentumot a cache fogják használni. Ez a módszer lehetővé teszi, hogy megbirkózzon a túlzottan tolakodó gyorsítótár IE. Például másolni a cache volt érvényes egy nap, akkor használja a következő nyilatkozatot teszi:

Szóval, hogyan kell használni ezeket a funkciókat a HTTP protokoll? Fejes Processing If-Modified-Since hasznos egyébként. Például Yandex ajánlja a használatát. Ha mentse a forgalom, és ha frissített oldalak ritkán, akkor megtiltják nekik caching nem szükséges. Akkor nehogy caching, akkor ahelyett, hogy azt fogja kérni, hogy a szerver az If-Modified-Since és 304 választ. Ez növelni fogja a forgalmat egy kicsit, de ez lehetővé teszi, így pontosabb betűivel felhasználó jött az oldalra, és azt mondjuk neki, hogy az oldal nem változott, de a statisztikák figyelembe venni. Ha ezeket az okmányokat gyakran frissül, szinte mindig meg kell tiltani a cache-t. Kiállító 304 válasz a legtöbb esetben kompenzálja a lehetséges forgalom növekedése.

Amellett, hogy a fenti módszer, hogy teszteljék a relevanciáját a dokumentum másolatát a cache, van egy másik, amely nem azon a napon az oldal megváltozik, és egy egyedi hash kód a lap tartalmát. A közös név mindkét módszer - Feltételes get, megtalálja több információt róluk.

Lásd a blog

Köszönöm a cikket!
És hogyan lehet belőle Opera egy képet, amelyet a script nem indul újra, tud segíteni?

Itt van a funkció:

Általában te perverzió, ha a cél -, hogy cserélje ki a valódi kép URL-jét bármely más. Ön bonyolítja életet maguk és a kiszolgáló fog forogni a forgatókönyvet.

Ellenkező esetben van értelme, ha minden egyes alkalommal generál egy másik képet. De még ebben a helyzetben, hogy jobb, hogy mentse a képet a lemezre, és felírni HTML link (ha a kép lesz releváns, mondjuk, 100 oldal megjelenítések).

Köszönöm a gyors választ :)
By the way, én is úgy döntött, hogy mentse a disk image, de van egy mod_rewrite van írva a következő:

RewriteEngine On
RewriteRule ^ ([^.] +) $ Index.php

a szép url és Parsa kezüket a forgatókönyvet. Hogyan írjunk, hogy bármely url nyitott index.php szkriptet most, de azzal a különbséggel, hogy ha az első szinten van show_image, majd egy mappába megy, ahol képek hazudnak.

A mod_rewrite részletesen nem értettem, így nem tudom megmondani. Ha én lennék a helyedben, én átirányítás révén mod_rewrite különböző szkriptek, attól függően, hogy az út (bár ez nem a legjobb megoldás).

Semmi sem lehet tenni a számlálók. Választani, ami sokkal fontosabb az Ön számára: Counter liveinternet.ru vagy kisebb forgalom, mint a látogató az oldalon, és a tárhely.

Azt akarom, hogy vegye figyelembe a felhasználók számára, akkor is, ha az csak az oldal címe nem változik. Ha ez a saját számlálót, akkor minden rendben van, de ha használom Li.ru? Meg lehet próbálni, kibocsátása után a kód 304 is alkalmazni kell a szerver liveinternet.ru és versenyez a túloldalon. Azonban nem tudom, hogyan fog működni. Szükséges lenne, hogy ilyet.

Ez elég érdekes. És ha a helyzet, hogy amikor belépni az oldalra keresztül Ajax paramétereket közöljük PCP forgatókönyvet, ő nem kartinuk és visszaadja a válasz valami hasonló "

. „Ebben a helyzetben, akkor is, ha a gyorsítótár ki van kapcsolva, a kép cache a böngésző, és nem akarja, hogy otnovlyatsya. Mi a teendő akkor?

A saját leírása nem értem a problémát. Írja le részletesen, mit akar, mit csinál, és mi az eredmény.

Ha az Ajax szerver script visszaadja a HTML-kódot, amely egy tag img, és nem akarja, hogy a gyorsítótárban, a kép lehet adni az src paraméter jelentéktelen, mint src = „https://written.ru/articles/technologies/site_building/ qwe.jpg? 8472 „véletlenszerűen generált.

Ha egy kép keletkezik a légy, és minden változást a script, amit ez létrehoz, szükséges regisztrálni címei megtiltani cache-t.

Mindenesetre, én csak ellenőrizni, hogy a kibocsátás 304 Opera válasz, az FF és az IE betöltődik számláló.

Azt nyitni egy oldalt, amely megadja az első fejezet: # „Last-Modified. # „És a tartalmát, majd minden alkalommal: # 'HTTP / 1.1 304 Nem módosított #'.

Tesztelem mindent FireFox 3.0.6, mert látom és fejlécek, és a hálózati aktivitás a gyújtogató. Ebben ez ezt a viselkedést.

Most már nem volt ideje foglalkozni ezzel a kérdéssel. Talán majd meglátjuk.

Talán vannak más megoldások is a feladat, hogy szembe?

Csak egy döntés: hagyja, ahogy van, támaszkodva a helyes működését a cache a két böngésző: IE és a Chrome vagy Firefox, az Opera és a Safari gólt.

Egy másik megoldás -, hogy hagyjon fel az ilyen típusú cache, de akkor már az ideje, hogy minden ügyfél számára. Vagy írjon a szerver ellenőrzi, ha az ügyfél eljött az előző oldalra, akkor ne adja meg a neve: # 'HTTP / 1.1 304 Nem módosított #', ami már önmagában is rossz.

Köszönöm a cikket, az úton! Fogom nézni, hirtelen létezik egy megoldás :)

függvény date2unixstamp ($ s)
visszaút strtotime (substr ($ s, 5));
>

Nagyon szépen köszönöm :) Nagyon hasznos, hogy a kódot.

Én biztosan nem túl jó ez az egész. Érdekelne, hogy hogyan kell csinálni a WordPress. Valahogy ez lehetséges? Mi cache-én gyengén képzelni azt kell robotok, ha egy ismeretlen hely kérésre, ha módosították, mivel wordpress adta az aktuális dátumot az oldal változásokat. Nos még mindig kívánatos, hogy minden egyes kérelem instruct Utolsó módosítás. Ezt meg lehet tenni a wp?

Nem tudom, hogy a legjobb módja annak, hogy a barátok és a Wordpress If-Modified-Since / If-None-Match. Nézze meg, mit írnak róla mások kísérletet plug-inek.

Azóta a vasút és az, hogy én nem találtam ilyen plugin. Általában a nagyobb yuzayu motor, annál inkább rájövök, hogy puff kell tanítani, és írjon valamit a saját.

Fáj a cím «Pragma» nem. Mert „golyóálló” akkor hagyjuk.

számomra ez nem túl szép és nem túl szűkszavú kódot olyan egyszerű feladat

különösen megható
die;

De minden már php: