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

A cikk fordítása A cikk fordítása
Cikk azonosítója: 234067 - A cikkben érintett termékek listájának megtekintése.
Az összes kibontása | Az összes összecsukása

A lap tartalma

Ö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ásai Ha 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ája Ha 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:
http://www.w3.org/Protocols/rfc2616/rfc2616.html

Tulajdonságok

Cikk azonosítója: 234067 - Utolsó ellenőrzés: 2006. március 13. - Verziószám: 4.1
A cikkben található információ a következő(k)re vonatkozik:
  • 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
Kulcsszavak: 
kbhowto kbcaching kbfaq KB234067
A Microsoft tudásbázisban szolgáltatott információkat "az adott állapotban", bárminemű szavatosság vagy garancia nélkül biztosítjuk. A Microsoft kizár mindennemű, akár kifejezett, akár vélelmezett szavatosságot vagy garanciát, ideértve a forgalomképességre és az adott célra való alkalmasságra vonatkozó szavatosságot is. A Microsoft Corporation és annak beszállítói semmilyen körülmények között nem felelősek semminemű kárért, így a közvetlen, a közvetett, az üzleti haszon elmaradásából származó vagy speciális károkért, illetve a kár következményeként felmerülő költségek megtérítéséért, még abban az esetben sem, ha a Microsoft Corporationt vagy beszállítóit az ilyen károk bekövetkeztének lehetőségére figyelmeztették. Egyes államok joga nem teszi lehetővé bizonyos károkért a felelősség kizárását vagy korlátozását, ezért a fenti korlátozások az ön esetében esetleg nem alkalmazhatók.

Visszajelzés küldése

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com