Forum: PC-Programmierung Caching im I-Explorer mit NUT/OS


von Martin (Gast)


Lesenswert?

Hallo zusammen,

ich programmiere eine Baugruppe mit ATMEGA128 Controller, auf dieser 
läuft NUT/OS 4.4.1.1, mit Webserver. Ich versuche nun gewisse Teile von 
Webseiten im Browser zu chachen. Das mache ich indem ich den HTML Header 
beim Response um die Zeile

"Cache-Control: max-age=3600, s-maxage=3600"

erweitere. Das ganze funktioniert im Firefox und Opera Browser 
wunderbar. Alle Teile, welche mit diesem Header gesendet werde, werden 
auch gechached. Leider weigert sich der Internet Explorer wehemend dies 
zu tun, sprich er lädt bei jedem Aufruf alle Teile neu. Ich habe mir mit 
"Fiddler" die HTML Header angeschaut. Den einzigen Unterschied, welchen 
ich im Gegensatz zu anderen Webseiten gefunden habe ist, ein "Pragma: 
no-cache", das allerdings beim REQUEST, also GET gesedet bzw. erzeugt 
wird. Ich habe keine Ahnung warum und weshalb der Explorer dieses Pragma 
bei einer Anfrage erzeugt, hat vielleich von euch einer eine Lösung für 
mich? Oder kann mir sagen unter welchen Umständen der Internet Explorer 
bei einer Anfrage ein "Pragma: no-cache" erzeugt?

Danke Gruß
Martin

von Εrnst B. (ernst)


Lesenswert?

Versuch mal einen Expires-Header mitzusenden.

von Martin (Gast)


Lesenswert?

Danke für die schneller Antwort, aber ich denke das wird nicht helfen, 
da laut RFC2616 Kap.14

Note: if a response includes a Cache-Control field with the max-
      age directive (see section 14.9.3), that directive overrides the
      Expires field.

das Expire Feld überschrieben wird, wenn man Cache-Control in Verbindung 
mit max-age benutzt.

von Εrnst B. (ernst)


Lesenswert?

Und du glaubst, der Internet Explorer würde sich an eine RFC halten? 
Reichlich optimistisch...
Ich würd das Expire mal testen, reicht ja erstmal mit nem statischen 
End-Datum.

von Martin (Gast)


Lesenswert?

Ist weiß nicht ob sich Microsoft bei der Entwicklung des Internet 
Explorers an die RFC gehalten hat, würde es also weder behaupten noch 
bestreiten, dass ist aber der einzige Standard an den ich mich halten 
kann....und natürlich habe ich deinen Vorschlag ausprobiert, hat aber 
leider auch nichts gebracht, weiterhin cachen nur Firefox und 
Opera...:-(

von Sven P. (Gast)


Lesenswert?

Martin wrote:
> Ist weiß nicht ob sich Microsoft bei der Entwicklung des Internet
> Explorers an die RFC gehalten hat, würde es also weder behaupten noch
> bestreiten,
Na, du siehst es doch offen vor dir liegen... Hast du im IE irgendwo den 
Cache auch angestellt? Ansonsten würde ich mich als Entwickler nie und 
nimmer  auf nen Cache verlassen, du siehst ja selbst, warum.

von Martin (Gast)


Lesenswert?

Ich glaube wir schweifen hier ein bisschen ab... ich brauch beim IE den 
caching Mechanismus nicht anschalten, weil er standartmäßig aktiviert 
ist. (Ich weiß überhaupt nicht ob man ihn abschalten kann, aber irgendwo 
bestimmt). Ich will mich auch nicht auf den Cache verlassen, und ihn nur 
explizit für Bilder und stylesheet Dateien nutzen, welche, bei mir 
zumindest statisch sind, es also keine Rolle spielt ob sie gecachet 
werden oder nicht. HTML Seiten werden nicht gecachet. Der Sinn des 
Ganzen ist es, die Ladezeiten der Webseiten möglichst klein zu halten.

Und deshalb war meine eigentlich Frage ob jemand weiß, welche 
Voraussetzungen des HTML Header gegeben sein müssen, damit der Internet 
Explorer eine Datei cachet?

Ich möchte hier keinen Browser bewerten, ich möchte halt nur mein 
Problem lösen und bin für jeden Lösungsvorschlag dankbar.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Man kann keinen Browser zwingen etwas zu cachen, du wirst auch nirgendwo 
in den entsprechenden RFCs dazu ein "MUST" finden.

Zeig doch mal die kompletten Header von Request und Response.

von Morin (Gast)


Lesenswert?

> Und deshalb war meine eigentlich Frage ob jemand weiß, welche
> Voraussetzungen des HTML Header gegeben sein müssen, damit der Internet
> Explorer eine Datei cachet?

Tip: Ruf mal mit dem IE ein Bild o.ä. auf einer "normalen" Seite auf und 
schneide den Datenverkehr mit, da müssen die nötigen Headerdaten ja 
vorkommen. Evtl sind es auch bestimmte header die nicht vorkommen 
dürfen damit gecached wird.

> Ich möchte hier keinen Browser bewerten, ich möchte halt nur mein
> Problem lösen und bin für jeden Lösungsvorschlag dankbar.

Optimist...

von Gast2 (Gast)


Lesenswert?

Mach ne Startseite:

"Diese Webseite ist fuer Opera und Firefox optimiert"

Gast2

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.