Jelenleg nem kapcsolódik az internethez. Várakozás a kapcsolat helyreállítására

A gyorsítótárazás megakadályozása az Internet Explorer programban

Összefoglaló
Ez a cikk a azt ismerteti, hogyan lehet az Internet Explorer programban a weblapok gyorsítótárazását HTTP-fejlécek használatával vezérelni.

A Microsoft Internet Information Server (IIS) szolgáltatás segítségével egyszerűen megjelölhetők a gyakran változó vagy érzékeny weblapok a megfelelő Active Server Pages (ASP) oldal legelejére beillesztett alábbi néhány sorral:
<% Response.CacheControl = "no-cache" %><% Response.AddHeader "Pragma", "no-cache" %><% Response.Expires = -1 %>				
További információ

Az elévülés és az elévülési fejléc

Feltétlenül ajánlott, hogy a webkiszolgálók használjanak sémát valamennyi weblapjuk elévülésének kezeléséhez. Nemkívánatos gyakorlat az, hogy a webkiszolgálók nem szolgálnak elévülési információval a kérelmező ügyfeleknek küldött válaszok HTTP-elévülési fejlécében. A legtöbb böngészőprogram és a közbenső proxy figyelembe veszi az elévülési információt, és felhasználja azt a hálózaton folyó kommunikáció hatékonyságának növelésére.

Az elévülési fejléc funkciója az, hogy meghatározza azt az időtartamot, amely után a kiszolgálótól lekért fájlt az ügyfélnek frissítenie kell. A rendszeresen frissített oldalak esetében a leghatékonyabb válasz a következő frissítés időpontja. Vegyünk például egy napi híreket szolgáltató weblapot, amelyet minden nap reggel 5 órakor frissítenek. Ennek a weblapnak a kiszolgálója az elévülési fejlécben másnap 05:00 órai értéket küld vissza, így a böngésző nem fog kapcsolatba lépni a webkiszolgálóval, csak amikor a weblap tartalma ténylegesen megváltozhatott.

Az olyan oldalakat, amelyek várhatóan nem fognak változni, körülbelül egy éves lejárati idővel érdemes megjelölni.

A webkiszolgálókon sok esetben több olyan gyorsan változó oldal is található, amelyek tartalma bármikor módosulhat. Ezeket az oldalakat az elévülési fejlécben -1 értékkel kell a kiszolgálónak megjelölnie. A felhasználó következő műveletei alkalmával az Internet Explorer a webkiszolgálóhoz fordul az oldal frissítéséért egy feltételes „If-Modified-Since” kérelmen keresztül. Az oldal azonban továbbra is megtalálható a helyi lemezen a gyorsítótárban (a Temporary Internet Files mappában), és a megfelelő helyzetekben a rendszer nem fordul a webkiszolgálóhoz, hanem a tárolt oldalt használja. Ilyen helyzet a böngésző VISSZA vagy ELŐRE gombjával léptetés az oldalak között vagy a böngésző kapcsolat nélküli módban történő használata.

A Cache-Control (gyorsítótárazás-vezérlő) fejléc

Bizonyos oldalak olyan gyorsan változóak vagy érzékenyek, hogy nincs szükség a lemezen történő gyorsítótárazásukra. E célból támogatja az Internet Explorer a HTTP 1.1 protokoll Cache-Control fejlécét, amely megakadályozza egy adott webes erőforrás gyorsítótárazását, ha a HTTP 1.1 kiszolgáló a fejlécben a „no-cache” értéket adja meg.

Mivel azonban azok az oldalak, amelyeket a rendszer nem gyorsítótáraz nem érhetők el mindaddig, amíg a böngésző újra kapcsolatba nem lépett a webkiszolgálóval, a kiszolgálóknak tanácsos óvatosan bánni Cache-Control fejléccel. A legtöbb esetben az „Expires: -1” érték használata ajánlott.

A „Pragma: No-Cache” fejléc

Sajnálatos módon a régebbi, HTTP 1.0 protokollt használó kiszolgálók nem képesek a Cache-Control fejléc használatára. A HTTP 1.0 protokollt használó kiszolgálókkal való visszamenőleges kompatibilitás biztosítása érdekében az Internet Explorer támogatja a „Pragma: No-Cache” HTTP-fejléc speciális használatát. Ha az ügyfél biztonságos kapcsolaton (https://) keresztül kommunikál a kiszolgálóval, és a kiszolgáló a válaszban „Pragma: No-Cache” fejlécet küld vissza, akkor az Internet Explorer nem gyorsítótárazza a választ.

Érdemes azonban megjegyezni, hogy a „Pragma: No-Cache” fejlécet nem erre a célra találták ki. A HTTP 1.0 és 1.1 specifikációja szerint ez a fejléc kérelmekkel és nem válaszokkal kapcsolatos, és valójában annak megelőzésére szolgál, hogy a proxykiszolgálók megakadályozzák bizonyos fontos kérelmek eljutását a célwebkiszolgálóhoz. A jövőbeli alkalmazások számára a gyorsítótárazás vezérlésének megfelelő módja a Cache-Control fejléc alkalmazása.

A HTTP-EQUIV META címkék

A HTML-kódolású lapok lehetővé teszik a META címke egy olyan speciális HTTP-EQUIV formátumának használatát, amely bizonyos HTTP-fejléceket a HTML-dokumentumból határoz meg. Az alábbi rövid HTML-kódrészlet mind a „Pragma: no-cache”, mind az „Expires: -1” fejlécet tartalmazza:
<HTML><HEAD><META HTTP-EQUIV="Pragma" CONTENT="no-cache"><META HTTP-EQUIV="Expires" CONTENT="-1"></HEAD><BODY></BODY></HTML>				
A „Pragma: no-cache” csak abban az esetben akadályozza meg a gyorsítótárazást, ha biztonságos kapcsolaton keresztül használják. Ha nem biztonságos lapon használják, akkor a „Pragma: no-cache” META címkét a rendszer az „Expires: -1” címkével azonos módon kezeli. A lapot a rendszer gyorsítótárazza, de azonnal meg is jelöli elévültnek.

A Cache-Control META HTTP-EQUIV címkéket az Internet Explorer 4-es és 5-ös verziói figyelmen kívül hagyják, így azok hatástalanok. A gyorsítótárazás vezérlésének használatához ezt a fejlécet a „Cache-Control (gyorsítótárazás-vezérlő)” szakaszban leírtak szerint, HTTP-fejlécek használatával kell megadni.

Fontos megjegyezni, hogy a hagyományos HTTP-fejlécek használata sokkal inkább ajánlott, mint a META címkék használata. A META címkéknek tipikusan a HTML HEAD szakasz legelején kell elhelyezkedniük. A Pragma HTTP-EQUIV META címkékkel kapcsolatban legalább egy probléma már ismert. A Microsoft Tudásbázis kapcsolódó cikke:
222064 A „Pragma: No-cache” címke nem minden esetben akadályozza meg az oldal gyorsítótárazását (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
A gyorsítótárazás kiszolgálóoldali beállításaiHa a gyorsítótárazás-vezérlő (Cache-Control) fejléceket nem ASP alapú oldalakon kell használni, akkor szükség lehet a kiszolgáló konfigurációjának módosítására, hogy a fejlécet automatikusan adja hozzá az oldalakhoz. Nézzen utána a kiszolgáló dokumentációjában annak, hogyan lehet engedélyezni HTTP-fejlécek hozzáadását egyes könyvtárak esetében a kiszolgáló által adott válaszokhoz. Az IIS szolgáltatás 4-es verziója esetében például kövesse az alábbi lépéseket:
  • Indítsa el az Internetes szolgáltatások kezelése eszközt.
  • A számítógépek és szolgáltatások faszerkezetében nyissa meg az alapértelmezett (vagy a kérdéses) webkiszolgálót, és keresse meg a gyorsítótárazás-vezérlő fejléceket igénylő tartalmat magába foglaló könyvtárat.
  • Nyissa meg a könyvtár Tulajdonságok párbeszédpanelét.
  • Kattintson a HTTP-fejlécek fülre.
  • Az Egyéni HTTP-fejlécek csoportban kattintson a Hozzáadás gombra, majd adja hozzá a „Cache-Control” fejlécnevet, és a „no-cache” fejlécértéket.
Fontos megjegyezni, hogy nem ajánlott ezt a fejlécet használni általánosan az egész webkiszolgálón. Korlátozza a használatát kizárólag azokra a tartalmakra, amelyeket semmiképpen nem szabad az ügyfélszámítógépen gyorsítótárazni.A hibák ellenőrzőlistájaHa a cikkben leírt technikák alkalmazása után továbbra is problémák adódnak a gyorsítótárazással és az Internet Explorer programmal, akkor nézze át az alábbi rövid ellenőrzőlistát lépésről lépésre, mielőtt a Microsoft terméktámogatási szolgálatához fordulna:
  • A gyorsítótárazás-vezérlő fejlécet az ASP „Response.CacheControl” tulajdonsággal vagy egy visszakapott HTTP-fejlécen keresztül használja-e? Csak ezeken a módokon akadályozható meg biztosan a gyorsítótárazás az Internet Explorer programban.
  • Az Internet Explorer 4.01 Service Pack 2 vagy újabb verzióját használja-e? A böngésző korábbi kiadásaiban nem akadályozható meg teljesen a gyorsítótárazás.
  • Meggyőződött arról, hogy a webkiszolgálón be van kapcsolva a HTTP 1.1 protokoll, és hogy az Internet Explorer programnak HTTP 1.1 szabványú válaszokat küld vissza a kiszolgáló? A gyorsítótárazás-vezérlő fejlécek érvénytelenek a HTTP 1.0 szabványú válaszokban.
  • Ha a kiszolgálóoldalon CGI/ISAPI/Servlet szolgáltatást használ, akkor azok teljesen megfelelnek-e a HTTP 1.1 specifikációjának, különös tekintettel a HTTP-fejlécek CRLF karakterekkel történő lezárására? A teljesítménycsökkenés elkerülése érdekében az Internet Explorer a HTTP 1.1 specifikációtól való semmilyen eltérést nem tűr meg a válaszokban. Ez általában figyelmen kívül hagyott fejléceket és váratlan kiszolgálóhibákat eredményez.
  • Helyesen vannak-e írva a HTTP-fejlécek?
Hivatkozások
A Microsoft Tudásbázis kapcsolódó cikkei:
189409 INFO: A Weboldalak cache-elésének irányítása IIS 4.0-val
165150 A „Pragma: No-cache” fejléc használata az IIS és az Internet Explorer programokkal (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)
A HTTP 1.1 protokollról további információt az RFC 2616 dokumentumban talál. A dokumentum beszerezhető az alábbi webhelyen:
Tulajdonságok

Cikkazonosító: 234067 - Utolsó ellenőrzés: 03/13/2006 17:15:00 - Verziószám: 4.1

  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0
  • Microsoft Internet Explorer 6.0 SP1
  • kbhowto kbcaching kbfaq KB234067
Visszajelzés