Moin!
Die Problematik:
Bei einem normalen Internetzugang alles kein Problem, es wird automatisch die aktuellste Datei angezeigt (spätestens dann, wenn man den Browser-Cache gelöscht hat).
Wenn jedoch im Netzwerk ein Proxy-Server vorgeschaltet ist, bringt's nichts, wenn der User lokal seien Cache löscht.
Ist das ein reales Problem, oder eher eine projizierte Ahnung?
Normalerweise löschen User ihren Cache nämlich nicht. Also wäre auch Möglichkeit eins ein Problem.
Andererseits liefert der Server, wenn er denn gefragt wird, eine Datei immer mit der Information aus, wann diese Datei erstellt wurde, und unter Umständen auch, wie lange die Datei gültig ist.
Gibt es keine "gültig bis"-Angabe, dann nehmen Proxys in der Regel einen Standardwert an, der meist nicht größer ist, als ein Tag. Wochen- oder monatelanges Aufbewahren im Proxy-Cache ist sehr ungewöhnlich.
Die Angabe "erstellt am" wird immer gesendet. Der Browser selbst wird beim erneuten Abrufen zuerst prüfen, ob die Datei noch gültig ist (wenn ja, dann wird er sie aus dem Plattencache ziehen). Andernfalls wird er die Datei beim Proxyserver anfordern. Dabei schickt er das Erstellungsdatum der Datei, die im Cache ist, mit. Der Proxy schaut in seinen Cache und liefert dann das Ergebnis aus dem Cache, wenn seine Kopie der Datei noch gültig ist und er eine neuere Datei als die des Browsers besitzt. Andernfalls liefert er "hat sich nicht geändert" zurück (HTTP-Statuscode "304 not modified" - in Proxy-Variante vermutlich etwas anders).
Hat der Proxy nur noch eine ungültige Datei, dann wird er direkt den Server fragen: Ich will die Datei xy.pdf, meine ist vom 1.1.2002. Und der Server wird prüfen, ob er die Datei hat (wenn nein, gibts 404 not found), ob die Datei auf dem Server neuer ist (wenn nein, gibts 304 not modified), und sie gegebenenfalls ausliefern (mit Status 200 OK).
Wenn der Browser keinen Proxy kennt, läuft das Spielchen direkt zwischen Browser und Server.
Und wenn man im Netscape 4 bei gedrückter Shift-Taste auf "Reload" klickt, werden alle Anforderungsdaten, die eventuell ältere Versionen aus irgendwelchen Proxys und Caches hervorlocken könnten, unterdrückt und garantiert (naja, fast garantiert, wenn sich die Proxys daran halten) eine neue Version vom Server geholt.
Frage:
Gibt's irgendwelche Tricks, wie ich den Proxy-Server zwingen kann, die Downloadfiles immer neu zu laden? Ich hab mal was gehört, dass man ein ? hinter die Dateienden setzten kann. Stimmt das? Wenn nein, was kann ich tun?
Du kannst erstmal schauen, ob deine Befürchtung überhaupt zutrifft. Und dann solltest du den Server konfigurieren, wenn die Befürchtung zutrifft.
http://httpd.apache.org/docs/mod/mod_expires.html
- Sven Rautenberg