Dragi: Reload der Seiten???

Hi,

ich habe ein recht seltsames Problem:

Ich kann einige Seiten nicht reloaden die ich so ins Netz stelle, andere sehen sie völlig normal, also muss es an mir liegen.

Und jetzt das lustigste was mir soeben auch vorkam:

Plötzlich zeigt mir der IE die Version von vorgestern an, wobei er eigentlich noch vorher die Version von heute anzeigte... aber nicht die aktuellste! Geil... :(

Woran könnte es liegen?

Hab den Cache auf 1Mb runtergeregelt und der IE6 greift bei jedem Zugriff auf den Server zu um die neuste Version zu bekommen. (laut einstellung) Auch das löschen der temporären Files bringt nichts...

irgendwo muss er es doch herhaben???

Dragi

  1. Hay
    Ich hatte mal ein ähnliches Problem respektive ich habe es immer noch. Eine bestimmte Kombination von Browser und Server und Dateiformaten, nämlich IE6, IIS 5 und ASP lädt bei einem Reload nicht die neusten Versionen sondern der IE holt die Seiten von Cache des Servers. Das ist scheinbar ein Browserbug.

    Grüsse
    Elvis

    1. Hi Elvis,

      Eine bestimmte Kombination von Browser und Server und Dateiformaten,
      nämlich IE6, IIS 5 und ASP lädt bei einem Reload nicht die neusten
      Versionen sondern der IE holt die Seiten von Cache des Servers.

      was meinst Du mit "des Servers"?
      Der HTTP-Server selbst hat keinen Cache (normalerweise).

      Aber es kann auf dem Weg zwischen Browser und Server in der Tat ein
      Proxy liegen, der Seiten cached.

      Das ist scheinbar ein Browserbug.

      Sehr unwahrscheinlich (aber natürlich auch nicht völlig undenkbar ;-).

      Deutlich wahrscheinlicher sind folgende Möglichkeiten:

      a) Der HTTP-Server hat vergessen, entsprechende HTTP-Header mitzusenden,
         um seine ASP-generierten Seiten als nicht-cacheable zu deklarieren.
         (Schlamperei des Seitenanbieters)

      b) Der besagte Proxy-Server empfängt Seiten, die als nicht-cacheable
         deklariert sind, und cached sie trotzdem, verstößt also gegen HTTP.
         (Fehler des Proxy-Betreibers - so einen Fall hatten wir letzte Woche:
          Kunde mit Micro$oft-Proxy-Server, installiert mit Default-Werten ...)

      Viele Grüße
            Michael

      1. Hi Michael

        Folgendes hat mir der Provider zu meinem Problem gesagt:
        "Dies ist ein uns bekanntes Problem zwischen dem IE6 und einem Windows 2000 Web-Server mit IIS 5. Beim laden von ASP Seiten cachet der IE6 die Seiten und holt diese nicht mehr vom Server. Leider können auch wir nichts dagegen tun, dies ist ein Software (Browser) Fehler."

        Aber es ist trotzdem eigenartig, ich hab noch ein Testserver der auf IIS 4 lauft (glaube ich), wenn ich mit dem IE6 die Seiten aufrufe und reloade funkt alles.(Bei den anderen Browsers, Opera, Mozilla funktionert der Reload ohne Probleme auch bei IIS 5)

        Ich hab den Seiten folgenden Code beigefügt:
        <%
        Response.Expires = 0
        Response.Expiresabsolute = Now() - 1
        Response.AddHeader "pragma","no-cache"
        Response.AddHeader "cache-control","private"
        Response.CacheControl = "no-cache"
        %>
        So sollte weder Browser, noch sonst irgendeiner die Seiten cachen.Trotzdem passierts. Das Problem ist zwar nicht weltbewegend, aber trotzdem stört es mich.
        Grüsse Elvis

        1. Hi Elvis,

          Folgendes hat mir der Provider zu meinem Problem gesagt:
          "Dies ist ein uns bekanntes Problem zwischen dem IE6 und einem
          Windows 2000 Web-Server mit IIS 5. Beim laden von ASP Seiten
          cachet der IE6 die Seiten

          ... weil der IIS 5 ihm das nicht verboten hat ...

          und holt diese nicht mehr vom Server.

          ... weil er so eingestellt ist, daß er den Cache-Inhalt nicht
          ständig validiert ...

          Leider können auch wir nichts dagegen tun,

          Der Server muß HTTP-Header senden, die das Caching verhindern.
          Er _könnte_ sinnvolle Defaultwerte setzen - beispielsweise für
          alles, was *.asp ist, das Caching verbieten. So etwas sollte per
          Konfiguration kein Problem sein, vermutlich nicht mal beim IIS.

          dies ist ein Software (Browser) Fehler."

          Tut der Server das nicht, dann hat der Browser keine Chance, sich
          richtig zu verhalten.

          Ich hab den Seiten folgenden Code beigefügt:
          <%
          Response.Expires = 0
          Response.Expiresabsolute = Now() - 1
          Response.AddHeader "pragma","no-cache"
          Response.AddHeader "cache-control","private"
          Response.CacheControl = "no-cache"
          %>

          Ja - genau das meinte ich.

          Letzten Endes versteht _nur_ Deine Anwendung selbst, ob die von ihr
          generierten Seiten in einem Cache gehalten werden dürfen oder nicht.
          Ein Proxy hat keine Chance, zu erraten, was Du wolltest - Du mußt
          es ihm explizit mitteilen.

          Nimm Dir mal eine Suchmaschine als Beispiel. Woher soll ein Proxy
          wissen, wie oft sich der Datenbestand der Suchmaschine ändert?
          Vielleicht ändert er sich nur einmal pro Tag (wie hier bei der Ar-
          chiv-Suchmaschine) ... dann darf der Cache die Seite sicherlich ein
          paar Stunden aufbewahren. Wie lange genau, muß aber der Server bzw.
          die serverseitige Applikation festlegen - nur die weiß, was sie will.
          Ich selbst betreibe zwei Suchmaschinen, deren Ausgabe durchaus im
          Browser-Cache verbleiben _soll_ - ich weiß, wann sich der Inhalt
          frühestens wieder ändern kann, also teile ich das dem Browser mit.

          In Deinem Fall hast Du mit "Private" dem Proxy verboten, zu cachen,
          würdest es aber einem HTTP/1.1-Browser erlauben ("Cache-Control:"
          hat für den meines Wissens Vorrang vor "Expires:" etc.) - willst Du
          das so? Zumindest widerspricht das dem Rest Deiner HTTP-Header ...

          Viele Grüße
                Michael

          1. hi michael
            Jetzt wo ich deine Antwort lese, sehe ich, dass ich wohl ein wenig neben dem Thema geschrieben habe. Das eigentlich zentrale Problem ist nicht so sehr das Cachen von Seiten oder ihr "nicht gecacht werden" sondern eher das fehlerhafte Reloaden von Seiten auf bestimmten Browserversionen, mit bestimmten Servern und Dateiformaten. Die Geschichte mit den expliziten AddHeader Methoden habe ich eingentlich nur auf Grund der Providerantwort eingefügt.
            Vielleicht sollte ich die ganze Sache analytischer angehen, sonst wird das noch ein endlos Thread.

            Problem: Beim Reload von ASP Seiten wird das Stylesheet nicht mehr mitgeladen und der HTML Code nur noch bis etwa zur Hälfte übermittelt.

            Auftreten: (1) Bei Windows 2000 mit IIS 5 und IE6 als User Agent (Client OS Windows 2000). Nur ASP Seiten betroffen.

            Nicht betroffen sind folgende Konfigurationen:
            (2) Server: [Windows 2000 IIS5], Client: [Windows 98 IE6]
            (3) Server: [Windows NT IIS4], Client: [Windows 2000 oder 98 IE6]
            (4) Alle anderen Browser mit den obengenannten Serverconfigs.

            Mir scheint es, es handle sich hier weder um ein Cache Problem oder um ein dazwischengeschalteter Proxy, sondern wirklich um ein MS spezifisches Problem. Ich meine, nur weil ich keine AddHeader Methoden spezifiziere, oder weil die Seite im Cache landet heisst das noch lange nicht, das Stylesheets nicht mehr mitgeladen werden müssen...
            Grüsse
            elvis

  2. Hi,

    Plötzlich zeigt mir der IE die Version von vorgestern an, wobei er eigentlich noch vorher die Version von heute anzeigte... aber nicht die aktuellste! Geil... :(

    Hast du den Cache vollständig (zur Not zu Fuß) gelöscht?

    Woran könnte es liegen?

    Hab den Cache auf 1Mb runtergeregelt und der IE6 greift bei jedem Zugriff auf den Server zu um die neuste Version zu bekommen. (laut einstellung) Auch das löschen der temporären Files bringt nichts...

    Wie sieht's in einem besseren Browser aus?

    irgendwo muss er es doch herhaben???

    Vielleicht liefert irgendein dazwischen liegender Proxy veraltete Seiten aus. Der letzte Eintrag auf deiner Seite stammt bei mir jedenfalls vom 11.09.2002 / 19:45:13 Uhr.

    LG Orlando

    1. Hi Orlando,

      Vielleicht liefert irgendein dazwischen liegender Proxy veraltete
      Seiten aus. Der letzte Eintrag auf deiner Seite stammt bei mir
      jedenfalls vom 11.09.2002 / 19:45:13 Uhr.

      ich schließe mich der Proxy-Theorie an.

      Mit etwas Glück kann man den Proxy sogar sehen, wenn man einen Zugriff
      über mein HTTP-Trace
           http://www.schroepl.net/cgi-bin/http_trace.pl
      macht: 'Nette' (nichttransparente) Proxies fügen einen "Via:"-Header in
      den HTTP-Strom ein. (Bei Squid ist das z. B. per Default eingeschaltet.)

      Viele Grüße
            Michael

      1. [ 35] GET /cgi-bin/http_trace.pl HTTP/1.0
        [ 55] REFERER: http://forum.de.selfhtml.org/?m=130276&t=23522
        [ 63] USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
        [ 12] ACCEPT: */*
        [ 23] CONNECTION: keep-alive
        [ 20] ACCEPT_LANGUAGE: de
        [ 30] CACHE_CONTROL: max-age=259200
        [ 31] ACCEPT_ENCODING: gzip, deflate
        [ 32] X_FORWARDED_FOR: 217.199.65.232
        [ 23] HOST: www.schroepl.net
        [ 56] VIA: 1.1 bigvater.berlinweb.de:3128 (Squid/2.4.STABLE6)

        Das gibt er mir...

        Also ich hab keine Proxis eingestellt und die Temp Daten auch schon manuell gelöscht... half nichts.

        1. HI,

          CACHE_CONTROL: max-age=259200

          "Diese Seite darf 8 Stunden lang vom Browser gecached werden." Aha.

          X_FORWARDED_FOR: 217.199.65.232

          Upsa - das war wohl die IP-Adresse, die sich beim Proxy gemeldet hat.

          VIA: 1.1 bigvater.berlinweb.de:3128 (Squid/2.4.STABLE6)

          Und das ist ein Proxy-Server, der zwischen Browser und Server steht.
          Es ist ein "netter" Proxy, denn er macht seinen Job nicht im Geheimen.

          Also ich hab keine Proxis eingestellt und die Temp Daten auch schon
          manuell gelöscht... half nichts.

          Natürlich hilft das nichts.
          Wenn der "bigvater" beschlossen hat, zu cachen, dann cached _er_. ;-)

          Die Frage ist eher, ob Du vermeiden kannst, diesen Proxy zu verwenden.
          Ist "berlinweb.de" Dein Einwahl-Provider? Kannst Du mal versuchen,
          Dich über einen anderen Provider einzuwählen und das Problem zu re-
          produzieren?

          Vor allem würde mich aber interessieren, ob der Cache-Control-Header
          von diesem Squid kommt oder vom HTTP-Server ... wenn der Server ihm
          das so gesagt hat, dann macht der Proxy nichts, was er nicht dürfte.

          Viele Grüße
                Michael