Onemogućivanje predmemoriranja u programu Internet Explorer

Prijevod članka Prijevod članka
ID članka: 234067 - Pregledajte proizvode na koje se odnosi ovaj članak.
Proširi sve | Sažmi sve

Na ovoj stranici

SAŽETAK

U ovom se članku opisuje kako pomoću HTTP zaglavlja kontrolirati predmemoriranje web-stranica u programu Internet Explorer.

Pomoću sustava Microsoft Internet Information Server (IIS) možete jednostavno označiti vrlo nepostojane ili osjetljive stranice pomoću sljedeće skripte na samom početku određenih ASP (Active Server Pages) stranica:
<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
				

DODATNE INFORMACIJE

Istek i zaglavlje Expires

Preporučljivo je da svi web-poslužitelji koriste shemu za istek svih web-stranica. Nije dobro kada web-poslužitelj ne isporučuje podatke o isteku putem HTTP zaglavlja odgovora Expires (Istječe) za svaki resurs vraćen klijentima koji su ga zatražili. Većina današnjih web-preglednika i posrednih proxy poslužitelja poštuje te podatke o isteku i koristi ih za povećanje učinkovitosti komunikacije putem mreže.

Zaglavlje Expires uvijek bi se trebalo koristiti za određivanje najpogodnijeg vremena kada klijent mora ažurirati određenu datoteku na poslužitelju. Kada se stranice redovito ažuriraju, najučinkovitiji je odgovor sljedeće razdoblje za ažuriranje. Uzmimo kao primjer neku web-stranicu s dnevnim novostima koja se svakodnevno ažurira u 5.00 sati. Web-poslužitelj te stranice s novostima trebao bi vratiti zaglavlje Expires s vrijednošću za 5.00 sati sljedećeg dana. U tom se slučaju web-preglednik ne mora ponovo povezivati s web-poslužiteljem dok se web-stranica ne promijeni.

Stranice za koje ne očekujete da će se mijenjati trebale bi biti označene datumom isteka za otprilike jednu godinu.

U mnogim slučajevima web-poslužitelji imaju jednu ili više nepostojanih stranica na poslužitelju koji sadrži informacije, koje se mogu odmah promijeniti. Te bi stranice poslužitelj trebao označiti kao takve, tj. unijeti vrijednost "-1" u zaglavlje Expires. Nakon sljedećih zahtjeva korisnika Internet Explorer obično se povezuje s web-poslužiteljem radi ažuriranja te stranice pomoću uvjetnog zahtjeva If-Modified-Since (Ako je izmijenjena nakon). No stranica ostaje u predmemoriji na disku ("Temporary Internet Files" (Privremene internetske datoteke)) i u odgovarajućim se situacijama koristi bez komuniciranja s udaljenim web-poslužiteljem, primjerice kada pristupate prethodno posjećenim web-stranicama pomoću gumba BACK (Natrag) i FORWARD (Naprijed) ili kada je web-preglednik u izvanmrežnom načinu rada.

Zaglavlje Cache-Control

Određene su stranice, međutim, toliko nepostojane ili osjetljive da za njih predmemoriranje na disku mora biti isključeno. Zato Internet Explorer podržava zaglavlje Cache-Control (Kontrola predmemoriranja) prema protokolu HTTP 1.1, koje onemogućuje bilo kakvo predmemoriranje određenog web-resursa kada HTTP 1.1 poslužitelj navede vrijednost "no-cache" (bez predmemoriranja).

Budući da se stranicama izvan predmemorije ne može pristupati dok se web-preglednik ponovno ne poveže s web-poslužiteljem, poslužitelji ne bi trebali prečesto koristiti zaglavlje Cache-Control. U većini situacija poželjna je upotreba postavke "Expires: -1" (Istječe: -1).

Zaglavlje Pragma: No-Cache

Nažalost, naslijeđeni HTTP 1.0 poslužitelji ne mogu koristiti zaglavlje Cache-Control. Radi kompatibilnosti sa starijim verzijama HTTP 1.0 poslužitelja Internet Explorer podržava poseban način upotrebe HTTP zaglavlja Pragma: no-cache (Pragma: bez predmemoriranja). Ako klijent komunicira s poslužiteljem putem sigurne veze (https://) i poslužitelj s odgovorom vrati zaglavlje Pragma: no-cache, Internet Explorer neće predmemorirati odgovor.

No, imajte u vidu da to nije namjena zaglavlja Pragma: no-cache. Prema specifikacijama protokola HTTP 1.0 i HTTP 1.1 to se zaglavlje definira samo u kontekstu zahtjeva, a ne odgovora, i zapravo je namijenjeno proxy poslužiteljima koji mogu spriječiti prijenos određenih važnih zahtjeva do odredišnog web-poslužitelja. Zaglavlje Cache-Control pravilan je način kontrole predmemoriranja pri radu s novijim i budućim poslužiteljima.

HTTP-EQUIV META oznake

HTML stranice dopuštaju poseban HTTP-EQUIV oblik META oznake koji definira određena HTTP zaglavlja iz HTML dokumenta. Slijedi kratak primjer HTML stranice koja koristi Pragma: no-cache i Expires: -1:
<HTML><HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD><BODY>
</BODY>
</HTML>
				
Pragma: no-cache onemogućuje predmemoriranje samo kada se koristi putem sigurne veze. META oznaka Pragma: no-cache tretira se isto kao Expires: -1 ako se koristi na stranici koja nije sigurna. Stranica će se predmemorirati, ali će biti označena kao odmah istekla.

META HTTP-EQUIV oznake Cache-Control zanemaruju se i nemaju učinka na Internet Explorer verzije 4 ili 5. Da biste koristili Cache-Control, to zaglavlje mora biti definirano pomoću HTTP zaglavlja, kao što je opisano u gornjem odjeljku o zaglavlju Cache-Control.

Imajte u vidu da je upotreba standardnih HTTP zaglavlja mnogo poželjnija od upotrebe META oznaka. META oznake u pravilu se moraju nalaziti na početku odjeljka HTML HEAD. Uz to, poznat je najmanje jedan problem vezan uz META oznaku Pragma HTTP-EQUIV. Dodatne informacije potražite u članku iz Microsoftove baze znanja pod brojem
222064 Oznaka "Pragma: No-cache" možda neće spriječiti predmemoriranje stranice (Ova veza može upućivati na sadržaj koji je djelomično ili potpuno na engleskom jeziku)

Postavke poslužitelja za predmemoriranje

Kada se zaglavlje Cache-Control treba koristiti na stranicama koje nisu ASP, možda će biti potrebno koristiti mogućnosti u konfiguraciji poslužitelja za automatsko dodavanje tog zaglavlja. Informacije o postupku dodavanja HTTP zaglavlja odgovorima poslužitelja za određeni direktorij potražite u pratećoj dokumentaciji poslužitelja. Primjerice, u sustavu IIS 4 slijedite ove korake:
  • Otvorite Internet Services Manager.
  • Pomoću stabla računala i servisa otvorite Default Web Server (Zadani web-poslužitelj) (ili odgovarajući web-poslužitelj), a zatim pronađite direktorij u kojemu se nalazi sadržaj koji treba zaglavlje Cache-Control.
  • Otvorite dijaloški okvir Properties (Svojstava) za taj direktorij.
  • Odaberite karticu HTTP Headers (HTTP zaglavlja).
  • U odjeljku Custom HTTP Headers (Prilagođena HTTP zaglavlja) kliknite gumb Add (Dodaj), a zatim dodajte "Cache-Control" kao naziv zaglavlja i "no-cache" kao vrijednost zaglavlja.
Imajte u vidu da globalna upotreba tog zaglavlja na cijelom web-poslužitelju nije dobra zamisao. Ograničite njegovu upotrebu isključivo na sadržaj koji se nipošto ne smije predmemorirati na klijentu. Pitanja za otkrivanje problema Ako nakon primjene tehnika opisanih u ovom članku još uvijek postoje problemi s predmemoriranjem i programom Internet Explorer, pažljivo pročitajte ovaj koristan popis za provjeru prije no što se obratite tvrtki Microsoft radi tehničke podrške.
  • Koristite li zaglavlje Cache-Control (Kontrola predmemorije) s ASP svojstvom "Response.CacheControl" ili putem vraćenog HTTP zaglavlja? To je jedini način na koji zaista možete onemogućiti predmemoriranje u Internet Exploreru.
  • Koristite li Internet Explorer 4.01 Service Pack 2 ili noviji? U starijim verzijama web-preglednika predmemoriranje se ne može posve onemogućiti.
  • Jeste li provjerili je li na web-poslužitelju uključen HTTP 1.1 i vraća li web-poslužitelj HTTP 1.1 odgovore programu Internet Explorer? Zaglavlja Cache-Control nisu valjana u HTTP 1.0 odgovorima.
  • Ako na strani poslužitelja koristite CGI/ISAPI/servlete, slijedite li precizno specifikaciju HTTP 1.1, posebice kada je riječ o CRLF okončanju HTTP zaglavlja? Da ne bi došlo do smanjenja performansi, Internet Explorer u pravilu ne dopušta odgovore koji nisu u skladu sa specifikacijom HTTP 1.1. To obično rezultira zanemarenim zaglavljima ili izvješćima o neočekivanim pogreškama poslužitelja.
  • Jesu li HTTP zaglavlja pravilno napisana?

REFERENCE

Dodatne informacije potražite u člancima iz Microsoftove baze znanja pod sljedećim brojevima
189409 Nadzor predmemoriranja web-stranica pomoću sustava IIS 4.0 (Ova veza može upućivati na sadržaj koji je djelomično ili potpuno na engleskom jeziku)
165150 Upotreba oznake Pragma: No-cache u sustavu IIS i programu Internet Explorer (Ova veza može upućivati na sadržaj koji je djelomično ili potpuno na engleskom jeziku)
Dodatne informacije o protokolu HTTP/1.1 potražite u dokumentu RFC 2616 na sljedećem web-mjestu:
http://www.w3.org/Protocols/rfc2616/rfc2616.html

Svojstva

ID članka: 234067 - Posljednja izmjena: 24. siječnja 2008. - Revizija: 4.3
ODNOSI SE NA
  • 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 Service Pack 1
Ključne riječi: 
kbhowto kbcaching kbfaq KB234067

Pošaljite povratne informacije

 

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