Seit kurzen scheinen Bilder (inklusive Avatare auf dem Nubert-Webserver)
keine Lebenszeit (°) mehr zu haben. Sie werden immer wieder und immer wieder und immer wieder und immer wieder nachgeladen. Das macht Nubert über Analog-Modem
zur Schnecke.
Irgendjemand hat da was wieder kaputtkonfiguriert.
Ich habe Bilder est mal einfach abgeschaltet. Damit ist das ganze wieder erträglich.
Add: Auch "Zurück" dauert ewig. Vor kurzen dauerte das ca. 0,1 Sekunde, jetzt
zwischen 10 und 30 Sekunden. Irgendwas hält den Browser vom Cachen ab.
Das Problem hatten wir schon mal vor 1 bis 1 1/2 Jahren.
(°) Zeit, in der ein Image nicht nachgelaen wird, sondern als aktuelle angesehen wird. Bei Avataren kann dort problemlos eine 86400 stehen.
(°) Es scheinen auch keine Zeitstempel mehr geliefert zu werden, weil es noch einen zweiten Mechanismus gibt, der dieses verhindert. Wenn die Zeitstempel zwischen
lokaler Kopie und Webserver identisch sind, wird auch nichts mehr geholt.
Fachkundige und individuelle Beratung ist für uns selbstverständlich - rufen Sie uns an!
Sie erreichen unsere Hotline werktags von 10:00 bis 18:00 Uhr unter der 07171 8712 0 (Samstags: 10:00 bis 12:00 Uhr). Außerhalb Deutschlands wählen Sie +49 7171 87120. Im Dialog finden wir die optimale Klanglösung für Sie und klären etwaige Fragen oder Schwierigkeiten. Das nuForum ist seit dem 19. Juli 2023 im read-only-Modus: Das Ende einer Ära: Das nuForum schließt
Sie erreichen unsere Hotline werktags von 10:00 bis 18:00 Uhr unter der 07171 8712 0 (Samstags: 10:00 bis 12:00 Uhr). Außerhalb Deutschlands wählen Sie +49 7171 87120. Im Dialog finden wir die optimale Klanglösung für Sie und klären etwaige Fragen oder Schwierigkeiten. Das nuForum ist seit dem 19. Juli 2023 im read-only-Modus: Das Ende einer Ära: Das nuForum schließt
Fehlerhafte Konfiguration des Webservers
- Frank Klemm
- Star
- Beiträge: 2383
- Registriert: So 22. Dez 2002, 19:59
- Wohnort: Thüringen
- Been thanked: 9 times
Re: Fehlerhafte Konfiguration des Webservers
Brauchen sie auch nicht, da die Bilder de facto keine immanente Lebenszeit haben. Der httpd sendet Etag- sowie Last-Modified-Header, wenn der User Agent HTTP 1.1 versteht, wird er bei konsekutiven Requests If-Modified-Since- und If-None-Match-Header senden und somit einen Status 304 provozieren.Frank Klemm hat geschrieben:Seit kurzen scheinen Bilder (inklusive Avatare auf dem Nubert-Webserver) keine Lebenszeit (°) mehr zu haben.
greetings, Keita
- g.vogt
- Veteran
- Beiträge: 21807
- Registriert: Mi 13. Feb 2002, 13:36
- Has thanked: 16 times
- Been thanked: 157 times
Re: Fehlerhafte Konfiguration des Webservers
Hallo Koala,
Aber ich bin wie immer furchtbar neugierig (und faul noch dazu). Kannst du das obige für solche wie mich übersetzen?
Mit internetten Grüßen
Gerald Vogt
ich weiß (mal wieder), dass ich nichts weißKoala hat geschrieben:Brauchen sie auch nicht, da die Bilder de facto keine immanente Lebenszeit haben. Der httpd sendet Etag- sowie Last-Modified-Header, wenn der User Agent HTTP 1.1 versteht, wird er bei konsekutiven Requests If-Modified-Since- und If-None-Match-Header senden und somit einen Status 304 provozieren.
Aber ich bin wie immer furchtbar neugierig (und faul noch dazu). Kannst du das obige für solche wie mich übersetzen?
Mit internetten Grüßen
Gerald Vogt
Re: Fehlerhafte Konfiguration des Webservers
Hallo Gerald,
Wie bei vielen anderen Protokollen besteht die Kommunikation bei HTTP aus Headern und Bodies, d.h. der Client sendet einen Request-Header und ggf. einen Request-Body, worauf der Server mit einem Response-Header und ggf. einem Response-Body antwortet.
Der Request-Header enthält alle Meta-Informationen, die für eine Anforderung notwendig sind oder diese präzisieren:
Die erste Zeile fordert die Ressource "/nuforum/images/avatars/175978136241755e84bcc64.png" über HTTP 1.1 (aktuelle Version von HTTP) an, "Host" enthält den Servernamen, für den diese Anfrage bestimmt ist usw.
Die Antwort auf diese Anfrage besteht aus dem Header, der wie folgt aussieht, und dem Body, der die eigentliche Ressource (in diesem Fall mein Avatar) enthält:
In der ersten Zeile wird der Status der Anfrage übergeben (200 OK), die beiden folgenden Zeilen enthalten Zeitpunkt der Antwort sowie die Identifizierung der Server-Software.
Interessant sind die beiden darauf folgenden Zeilen:
Last-Modified enthält den Zeitpunkt, an dem die angeforderte Ressource zuletzt verändert wurde, Etag enthält eine Zeichenkette, anhand der die angeforderte Ressource identifiziert werden kann.
Mit diesen beiden Informationen ist der Browser in der Lage bei erneuten Anfragen dem Server mitzuteilen, daß er diese Ressource schon kennt und nur dann eine erneute Antwort wünscht, wenn sich die Ressource geändert hat (Etag stimmt nicht mehr überein) oder verändert wurde (Last-Modified ist jünger):
Die ersten neun Zeilen der erneuten Anfrage sind identisch mit denen der initialen Anfrage, hinzugekommen sind die letzten beiden Zeilen:
Als Antwort auf die zweite Anfrage sendet der Webserver folgenden Header zurück:
Wie man in der ersten Zeile sieht, hat sich die Statusmeldung von "200 OK" in "304 Not Modified" verändert, auch die Länge des Headers hat sich deutlich verkürzt, zudem wird bei dieser Antwort kein Body und somit auch kein Bild zurückgesendet.
Der Webserver ist der Aufforderung des Browsers das Datum für die letzte Änderung sowie den Inhalt der Etag-Zeichenkette zu vergleichen nachgekommen und hat dabei festgestellt, daß sich nichts an dieser Ressource verändert hat (d.h. sie wurde nicht durch ein anderes Bild ersetzt und auch nicht mit einem neuen Zeitstempel versehen), ergo begnügt er sich damit einen kurzen Status zu senden.
greetings, Keita
keine Sorge, das ist keine Magie, sondern simple Kommunikationg.vogt hat geschrieben:ich weiß (mal wieder), dass ich nichts weiß
Aber ich bin wie immer furchtbar neugierig (und faul noch dazu). Kannst du das obige für solche wie mich übersetzen?
Wie bei vielen anderen Protokollen besteht die Kommunikation bei HTTP aus Headern und Bodies, d.h. der Client sendet einen Request-Header und ggf. einen Request-Body, worauf der Server mit einem Response-Header und ggf. einem Response-Body antwortet.
Der Request-Header enthält alle Meta-Informationen, die für eine Anforderung notwendig sind oder diese präzisieren:
Code: Alles auswählen
GET /nuforum/images/avatars/175978136241755e84bcc64.png HTTP/1.1
Host: www.nubert-forum.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.8,de-de;q=0.5,de;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Die Antwort auf diese Anfrage besteht aus dem Header, der wie folgt aussieht, und dem Body, der die eigentliche Ressource (in diesem Fall mein Avatar) enthält:
Code: Alles auswählen
HTTP/1.x 200 OK
Date: Sat, 05 Mar 2005 18:46:53 GMT
Server: Apache/1.3.27 (Linux/SuSE) FrontPage/4.0.4.3 PHP/4.3.10 mod_perl/1.27 mod_ssl/2.8.12 OpenSSL/0.9.6i
Last-Modified: Mon, 06 Dec 2004 18:49:57 GMT
Etag: "f5cd-b8b-41b4a9d5"
Accept-Ranges: bytes
Content-Length: 2955
Keep-Alive: timeout=3, max=5
Connection: Keep-Alive
Content-Type: image/png
Interessant sind die beiden darauf folgenden Zeilen:
Last-Modified enthält den Zeitpunkt, an dem die angeforderte Ressource zuletzt verändert wurde, Etag enthält eine Zeichenkette, anhand der die angeforderte Ressource identifiziert werden kann.
Mit diesen beiden Informationen ist der Browser in der Lage bei erneuten Anfragen dem Server mitzuteilen, daß er diese Ressource schon kennt und nur dann eine erneute Antwort wünscht, wenn sich die Ressource geändert hat (Etag stimmt nicht mehr überein) oder verändert wurde (Last-Modified ist jünger):
Code: Alles auswählen
GET /nuforum/images/avatars/175978136241755e84bcc64.png HTTP/1.1
Host: www.nubert-forum.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.8,de-de;q=0.5,de;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
If-Modified-Since: Mon, 06 Dec 2004 18:49:57 GMT
If-None-Match: "f5cd-b8b-41b4a9d5"
Mit diesem Header weist der Browser den Webserver an nur dann die Ressource auszuliefern, wenn sie seit dem 6. Dezember 2004 18:49:57 GMT verändert wurde, andernfalls soll nur eine Bestätigung gesendet werden, daß sich nichts verändert hat.Der Browser hat geschrieben:If-Modified-Since: Mon, 06 Dec 2004 18:49:57 GMT
Ähnlich verfährt der Browser mit dem Etag, den er bei der initialen Anfrage als Teil der Antwort erhalten hat. Der Webserver wird angewiesen nur dann die Ressource zu senden, wenn der Etag von der Zeichenkette "f5cd-b8b-41b4a9d5" abweicht, andernfalls soll er wiederum nur eine Bestätigung senden.Der Browser hat geschrieben:If-None-Match: "f5cd-b8b-41b4a9d5"
Als Antwort auf die zweite Anfrage sendet der Webserver folgenden Header zurück:
Code: Alles auswählen
HTTP/1.x 304 Not Modified
Date: Sat, 05 Mar 2005 18:54:31 GMT
Server: Apache/1.3.27 (Linux/SuSE) FrontPage/4.0.4.3 PHP/4.3.10 mod_perl/1.27 mod_ssl/2.8.12 OpenSSL/0.9.6i
Connection: Keep-Alive
Keep-Alive: timeout=3, max=5
Etag: "f5cd-b8b-41b4a9d5"
Der Webserver ist der Aufforderung des Browsers das Datum für die letzte Änderung sowie den Inhalt der Etag-Zeichenkette zu vergleichen nachgekommen und hat dabei festgestellt, daß sich nichts an dieser Ressource verändert hat (d.h. sie wurde nicht durch ein anderes Bild ersetzt und auch nicht mit einem neuen Zeitstempel versehen), ergo begnügt er sich damit einen kurzen Status zu senden.
greetings, Keita