www.wikidata.de-de.nina.az
Browser Cache ˈbɹaʊ ze ɹ kaeʃ ist ein Puffer Speicher des Webbrowsers in dem bereits abgerufene Ressourcen z B Texte oder Bilder auf dem Rechner des Benutzers lokal als Kopie aufbewahrt werden Wird eine Ressource spater erneut benotigt ist sie aus dem Cache schneller abrufbar als wenn sie erneut aus dem World Wide Web heruntergeladen werden musste Jedes Mal wenn fur die Darstellung einer Seite die Inhalte zu einer URL benotigt werden wird zuerst im Cache nachgesehen ob diese bereits vorhanden sind Vorteilhaft ist dass Netzwerkverkehr und die Zeit zum Herunterladen aller Bestandteile einer Webseite stark reduziert werden Nachteilig ist dass die im Cache gespeicherten Daten veraltet sein konnen wenn die Webseite zwischenzeitlich aktualisiert wurde Inhaltsverzeichnis 1 Einsatzgebiete 2 Benutzerkontrolle 3 Cache Verwaltung 3 1 Webserver 3 2 Versionsidentifikation 3 3 Methoden 4 Sicherheitsaspekte 5 Proxy Server 6 HTTP Caching 7 Weblinks 8 Einzelnachweise und AnmerkungenEinsatzgebiete Bearbeiten Ressource ist alles was uber eine bestimmte URL abgerufen werden kann Zu verschiedenen Zeiten konnen unter derselben URL unterschiedliche Inhalte vorhanden sein Im Cache wird jeder URL der zuletzt bekanntgewordene Inhalt zugeordnet Das gleiche Konzept fur einen Browser Cache auf dem PC eines Benutzers wird auch von sogenannten Proxy Servern fur ganze Rechnernetze genutzt etwa fur einen Firmenstandort oder eine Universitat an der Verbindungsstelle zum Internet oder aber fur alle Kunden eines physischen Telekommunikationsanbieters in einem Versorgungsbereich Sie liefern allen angeschlossenen Teilnehmern dieses Netzwerks haufig gefragte Dateien direkt ohne erst das eigentliche Internet durchlaufen zu mussen Caching kommt grundsatzlich fur jedes Protokoll in Frage das Ressourcen abrufbar macht Praktisch wird es aber nur fur HTTP HTTPS benutzt Wer mit dem Browser uber FTP einen Datei Download anfordert wird in diesem Moment eine frische Version erhalten allerdings konnte ein Proxy Server Kopien haufig gewunschter Dateien vorhalten mailto verschickt Daten und ruft sie nicht ab Andere Protokolle fur Ressourcen bieten keine besondere Unterstutzung fur das Versionsmanagement und sind heute auch kaum noch gebrauchlich Benutzerkontrolle BearbeitenBei einem Browser haben Benutzer allgemein folgende Moglichkeiten uber Konfigurationseinstellungen oder interaktiv das Verhalten des Cache zu beeinflussen Maximalgrosse des Festplattenspeicherplatzes festlegen bei null erfolgt kein Caching Aktuelle Seite neu vom Server abrufen betrafe die in der Adresszeile sichtbare URL Einzelseite oder eine Grafik Aktuelle Seite und alle darin eingebundenen Ressourcen Bilder Skripte Stile usw neu abrufen betrafe meist nur HTML Seiten Gesamten Cache leeren moglicherweise auch selektiv nur fur alle Ressourcen einer bestimmten Domain der aktuellen Seite Am Ende oder ersatzweise zu Beginn jeder Sitzung den gesamten Cache leeren Hochstalter fur Ressourcen festlegen Cache Verwaltung BearbeitenEs gelten folgende Grundsatze auf Seiten der Browser oder Proxy Server Kein System ist verpflichtet irgendwelche Hinweise des Ursprungs der Ressource zu beachten Im Interesse eines attraktiven Angebots sind die Entwickler von Browsern interessiert Informationen zum Cache Management auszuwerten um die Seiten sowohl schnell als auch auf aktuellem Stand darzustellen Umfangreiche Anregungen wurden schon 1997 in RFC 2068 1 und 1999 in RFC 2616 2 gegeben mussen aber nicht vollstandig umgesetzt sein Webserver Bearbeiten Ein Webserver sollte zu jeder einzelnen Ressource Cache Informationen Metadaten mitliefern um dem Benutzer eine aktuelle Darstellung zu gewahrleisten und moglichst geringen Kommunikationsaufwand fur Benutzer wie Server zu erreichen Der Betreiber des Webservers profitiert davon dass er nicht standig Abfragen nach unveranderten Ressourcen beantworten und dafur Rechner und Netzwerkkapazitat aufwenden muss Um die Haufigkeit besuchter Seiten und Informationen uber die Leser zu erhalten verwendet man hingegen sehr kleine eingebettete Schnipsel bei denen man die Aufnahme in den Cache geeignet verhindert und ein erneutes Abrufen bei jedem Darstellen der Seite erzwingt Versionsidentifikation Bearbeiten Zum Cache Management wird fur jede einzelne Ressource wahlweise einer von zwei Identifizierern verwendet sofern vom Server beigefugt Timestamp Banaler Zeitstempel in UTC Feld Last Modified ETag 3 Unterscheidung inhaltlich wesentlich verschiedener Versionen einer Ressource Kann grundsatzlich auch ein Timestamp sein jedoch etwa auch eine fortlaufend gezahlte Versionsnummer oder ein Hashcode Feld ETagFehlen derartige Informationen dann kennt das Cache Management nur den Zeitpunkt des letzten erfolgreichen Abrufs Methoden Bearbeiten Folgende Methoden stehen zur Verfugung Heuristische Schatzungen Das Cache Management bestimmt nach eigenen Algorithmen welche Ressource verbleiben sollen und welche zu entfernen sind Dies wird insbesondere angewendet wenn der Ressource keine entsprechenden Informationen mitgegeben wurden Ressourcen unbegrenzt belassen wenn der zugelassene Festplattenspeicherplatz ausreicht erst bei Platzproblemen geeignet loschen Ressourcen die vor kurzer Zeit benutzt wurden konnten vielleicht bald wieder benotigt werden Lange Zeit nicht angesprochene Ressourcen sind zu loschen Ressourcen die haufig angesprochen werden sollen behalten werden Selten und lange Zeit nicht gefragte Ressourcen sind zu loschen Dateigrosse sehr grosse lange Zeit nicht und insgesamt selten benotigte Ressourcen zuerst loschen dafur viele kleine Ressourcen eher belassen Stabilitat mehrfach veranderte Inhalte sind Loschkandidaten Uber Jahre und mehrere Gultigkeitsprufungen hinweg unveranderte Ressourcen sollten behalten werden wenn sie ofters benutzt werden Kurze Restlaufzeiten sind ein Indiz fur Volatilitat wenn auch das momentane Uberschreiten der Mindesthaltbarkeit nicht zwangslaufig die Unbrauchbarkeit bedeuten muss POST Daten zusatzlich zur URL fuhren in aller Regel dazu dass derartige Seiten nicht wiederholbar abgerufen werden konnen und werden ublicherweise nicht im Cache abgelegt Dies ware auch recht gefahrlich weil derartige Informationen oft den Inhalt der Zielseite verandern und eine notwendige Bestatigung an den Server nicht abgeschickt werden wurde Wird in der URL am eine Query erkannt etwa bei einer Datenbankabfrage hatten Algorithmen ursprunglich von der Speicherung abgesehen weil durch Kombination der Abfrageparameter viele unterschiedliche URL ohne eine Wiederverwendung zustande kamen Zunehmend werden aber von CMS alle Seiten statisch in diesem URL Format prasentiert so dass diese Annahme nicht mehr verlasslich ist Verfallsdatum Die Ressource ist mit einem Ablaufdatum Zeitpunkt versehen oder aber einem Haltbarkeitszeitraum nach Abruf etwa drei Tage aus dem der Zeitpunkt der Ungultigkeit berechnet werden kann 4 Felder Expires 5 mit einem konkreten Zeitpunkt und Cache Control max age 6 in Sekunden als relative Angabe 7 Beispiel Wetterbericht immer gultig fur die folgenden 15 Minuten Die Ungultigkeit der Ressource bewirkt aber nicht zwangslaufig die Loschung aus dem Cache sondern lediglich eine Uberprufung der Gultigkeit was zu einer Verlangerung der Gultigkeitsperiode bei unverandertem Inhalt fuhren kann Liegt der als Expires angegebene Zeitpunkt im Moment der Abfrage bereits in der Vergangenheit kann diese Version nicht in den Cache aufgenommen werden Angaben zu dieser URL waren zu loschen Fehlen Angaben des Servers zur Gultigkeitsperiode kann aus dem Zeitpunkt der letzten Anderung notfalls aus dem durch das Caching aufgezeichneten Verhalten geschlossen werden ob sich die Ressource haufig andert oder konstant ist Wurde zuletzt vor drei Jahren verandert ist die Ressource wohl recht stabil ist sie gerade eine Viertelstunde alt oder hat sie sich wahrend des letzten Tages zweimal geandert ware sie kurzfristig auf Aktualitat zu uberprufen Wie genau das Cache Management adaquat mit fehlenden Meta Informationen umgeht bleibt der Intelligenz der Programmierer uberlassen Plump und Zeit wie Netzwerkkapazitat fressend ware es bei fehlenden Angaben eine grosse Datei jedes Mal neu vom Webserver abzurufen In der Benutzerkonfiguration konnte ein Hochstalter angegeben worden sein etwa zwei Wochen dd No Cache 8 Eine Ressource gibt bekannt dass sie nicht im Cache gehalten werden soll und bei jedem Seitenaufbau frisch vom Server abzurufen ist Felder Cache Control no cache Cache Control max age 0 Traditionell werden diese beiden Felder gleichzeitig ubermittelt obwohl redundant in der Hoffnung dass der Browser wenigstens eines davon verstehen moge Kombiniert wird das gern noch mit dem Verfallsdatum 1 Januar 1970 auch dies hatte die gleiche Wirkung Beispiel Borsenkurse andern sich mit jeder Sekunde Praziser Bei Cache Control no cache ware es einem Browser erlaubt die Ressource im Cache zu halten er musste sich aber vor jedem Zugriff durch Ruckfrage beim Server vergewissern dass sie noch aktuell ware Es ist in das freie Ermessen der Browser Implementierer gestellt dies so zu handhaben oder solch absehbar schnell veraltende Informationen gar nicht erst in den Cache aufzunehmen dd In der Wirkung beim Leser und in der vom Anbieter gewunschten Darstellung unterscheidet sich das nicht Versionsvergleich Der Browser vermutet anhand eines Ablaufzeitpunkts dass die momentan im Cache vorhandene Ressource veraltet sein konnte englisch stale abgestanden schal Es gibt dann zwei Moglichkeiten Die kurze HEAD Information der Ressource beim Server abfragen zunachst ohne den vollstandigen Inhalt das Ergebnis selbst auswerten und dann ggf auch den Inhalt abfordern GET Die bekannten Versionsinformationen Last Modified ETag an den Server senden Der Server antwortet entweder mit dem HTTP Statuscode 304 Not Modified die Version ist noch gultig oder sendet eine neue Version 200 OK schlimmstenfalls nunmehr 404 Not Found Invalidation 9 Wird zu einer URL spater eine der relativ selten vorkommenden POST PUT oder DELETE HTTP Request Methode festgestellt wie sie bei Formularen oder WebDAV benutzt werden musste der Eintrag zu dieser URL aus dem Cache geloscht werden weil dadurch diese Ressource auf dem Server verandert worden sein kann No Store 10 Standardmassig wird jede erfolgreich ubertragene Ressource als einzelne Datei auf der Festplatte abgelegt Bricht die Ubertragung zusammen oder sturzt gar der Rechner ab kann der Seitenaufbau mit den Zwischenergebnissen fortgesetzt werden In den Anfangsjahren der Browser war der reale Kernspeicher auch begrenzt die Netzwerke langsam so dass sich diese Vorgehensweise kaum vermeiden liess Das gilt fur alle Ressourcen der aktuell dargestellten Seiten unabhangig von der Verwendung eines Cache Nach Abschluss der Seitendarstellung werden diejenigen Dateien bei denen eine spatere Wiederverwendung moglich erscheint in die Datenstruktur des Cache ubernommen alle anderen Dateien werden als temporar markiert und zu gegebener Zeit geloscht Bei besonders sensiblen Ressourcen etwa Finanztransaktionen Kontodaten konnten Spuren auf der Festplatte zuruckbleiben etwa weil das Loschen einer Datei nur die Entfernung aus dem sichtbaren Dateisystem bedeutet nicht aber sofort das physische Uberschreiben Sturzt der Browser oder der Rechner ab konnten Dateien zuruckbleiben auch nach scheinbarer Loschung konnte die physische Festplatte noch sensible Informationen enthalten die bei Anmeldung auf dem fraglichen Benutzerkonto noch lesbar waren Mit Cache Control no store markierte Ressourcen soll ein Browser nicht auf die Festplatte zwischenspeichern sondern nur volatil im Kernspeicher halten Das Konzept hat allerdings eine Lucke Nur selten bietet das Betriebssystem einer Anwendung die Moglichkeit Kernspeicher anzufordern der zugesichert nicht in die Speicherungsauslagerungsdatei auf der Festplatte ausgelagert wird Sicherheitsaspekte BearbeitenDer Cache eines Benutzers lasst Ruckschlusse zu welche Themen aufgerufen werden Ein Benutzer sollte auf seinem Rechner einen individualisierten Cache verwenden fur jedes Benutzerkonto also ein eigener und vor dem Lesen durch andere Benutzer geschutzter Bereich Etwa 2000 2005 wurden die bis dahin gebrauchlichen zentralen Cache Verzeichnisse die von allen Benutzern eines PC gemeinsam benutzt wurden und auch von jedem Benutzer gelesen werden konnten durch individualisierte Cache ersetzt deren Zugriffsrechte auf den beim Betriebssystem angemeldeten Benutzer begrenzt sind und die auch jeweils auf ein Benutzerprofil des Browsers beschrankt sind Die meisten Browser kennen einen Privat Modus Hierbei wird unter anderem eine zusatzliche Cache Datenstruktur aufgebaut die alle jetzt abgerufenen Ressourcen aufnimmt Der normale Cache kann ggf parallel lesend benutzt werden es durfen dort aber keine Informationen geschrieben werden Mit Ende des Privat Modus wird der zusatzliche Cache geloscht Proxy Server uber die offen kommuniziert wird speichern fur alle Benutzer des Netzwerks die von ihnen genutzten Seiten und die Zugriffsstatistik Uber HTTPS abgerufene URL lassen sich auf Proxy Servern nicht speichern die zugehorigen Inhalte und sogar URL Pfade sind verschlusselt HTTPS hat hingegen keinen Einfluss auf das Caching beim anfordernden Einzelbenutzer der die URL und entschlusselten Inhalte ja kennt Allerdings gibt es bei manchen Browsern eine individuelle Konfigurationseinstellung nach der uber HTTPS abgerufene Informationen nicht im Cache abgelegt werden sollen Durch die starke Verbreitung von HTTPS auch fur drahtlose Verbindungen lasst die Verwendung dieses Protokolls aber kaum noch einen Ruckschluss auf einen besonderen Geheimhaltungsbedarf der damit ubertragenen Seiten zu Die Server Antwort Cache Control private soll bewirken dass diese Ressource nur in dem individualisierten Cache eines Benutzers gespeichert werden darf nicht aber auf Proxy Servern oder geteiltem Browser Cache Proxy Server BearbeitenEinige Felder richten sich speziell an Proxy Server also beliebige Zwischenstationen zwischen dem Browser und dem Server mit dem eigentlichen Ursprung der Daten Die Zwischenstellen konnen auf geteiltem Cache fur alle Teilnehmer des Netzwerks oder Benutzer des Computers haufiger abgefragte Ressourcen bereithalten Felder in der Ressource Cache Control s maxage nSeconds 11 Wie max age jedoch nur auf geteiltem s shared Cache Cache Control privateNicht auf geteiltem Cache speichern Cache Control publicExplizit freigegeben zur Speicherung auf geteiltem Cache Ein Browser kann in seiner Anfrage ubermitteln Pragma no cacheEin unterwegs angetroffener Proxy Server soll die Anfrage zum Ursprung durchreichen und nicht aus seinem Cache beantworten Auch wird empfohlen die Ressource zu dieser URL bereits als uberholt Mindesthaltbarkeit abgelaufen zu markieren da offenkundig Zweifel an der Aktualitat aufgetreten sind HTTP Caching BearbeitenZusammengefasst beeinflussen vor allem folgende Felder des HTTP das Caching falls vom Webserver geliefert oder die Grundlage geschaffen wurde Webserver Last Modified timestamp ETag version Expires timestamp Cache Control max age must revalidate no cache no store private public s maxage und weitere VaryBrowser Anfrage If Modified Since fur Last Modified If None Match fur ETag Pragma no cache Proxy Server umgehenDie gleichen Informationen die ein Webserver zusatzlich zum Inhalt ubermittelt konnen auch in ein HTML Dokument integriert werden 12 und die Standard Angaben des Servers ggf uberschreiben lt meta http equiv Last Modified content gt Weblinks BearbeitenAnleitung zum Leeren des Caches gangiger Browser browser cache de Anleitung zum Leeren des Caches gangiger Browser clear my browser cache com RFC 2616 HTTP 1 1 1999 insbesondere Abschnitte 13 und 14 grundlegende Techniken fur die Browser Entwicklung englisch Hilfe Cache zur Caching Problematik in der Wikipedia Cache Control immutableEinzelnachweise und Anmerkungen Bearbeiten RFC 2068 Hypertext Transfer Protocol HTTP 1 1 Januar 1997 englisch RFC 2616 HTTP 1 1 1999 englisch RFC 2616 Abschnitt 14 19 englisch RFC 2616 Abschnitt 13 2 4 englisch RFC 2616 Abschnitt 14 21 englisch RFC 2616 Abschnitt 14 9 3 englisch RFC 2616 Abschnitt 14 9 4 englisch amp max age Manche Webserver senden auf einen URL Parameter wie diesen hin in der Antwort das entsprechende Feld Cache Control RFC 2616 Abschnitt 14 9 1 englisch RFC 2616 Abschnitt 13 10 englisch RFC 2616 Abschnitt 14 9 2 englisch RFC 2616 Abschnitt 14 9 3 englisch HTML 4 Abgerufen von https de wikipedia org w index php title Browser Cache amp oldid 235370997