Horst Nogajski: RequestHeader an Proxy, möchte keine gecachte Datei?

Hallo zusammen,

gibt es für einen HTTP/1.1 GET-Request der zu einem Proxy geschickt wird auch einen Header der den Proxy veranlasst _nicht_ eine gecachte Version auszuliefern?

Viele Grüße,
Horst

  1. hi,

    gibt es für einen HTTP/1.1 GET-Request der zu einem Proxy geschickt wird auch einen Header der den Proxy veranlasst _nicht_ eine gecachte Version auszuliefern?

    Du meinst evntl.: über einen Proxy.

    Da gibts ein pragma:
    pragma: no-cache

    Das kann auch dem Get-Request mitgegeben werden (telnet, wget...). Der Proxy holt dann die Seite komplett neu und liefert auch die neue Seite ungecached aus.

    Gruss, Rolf

    --
    Hier Nix Werbung ;-)
  2. Moin,

    gibt es für einen HTTP/1.1 GET-Request der zu einem Proxy geschickt wird auch einen Header der den Proxy veranlasst _nicht_ eine gecachte Version auszuliefern?

    RFC 2616, Abschnitt 14.9. Cache-control: max-age=0 erscheint mir geeignet, wenn du If-modified-since o.ä. verwendest, sonst halt Cache-control: no-cache.

    --
    Henryk Plötz
    Grüße aus Berlin
    ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
    ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
  3. Hallo Henryk und Hallo Rolf,

    merci für die Tipps.

    Beides ist wohl nach RFC brauchbar. Mit 'Pragma: no-cache' ist es auch Rückwärtskompatibel zu HTTP/1.0.

    In den Spezifikationen zu HTTP/1.1 stehen eine ganze Menge Möglichkeiten die Anfrage gezielter zu steuern,
    (siehe 14.9.4  Cache Revalidation and Reload Controls)

    Leider hat nicht eine einzige davon hier bei mir lokal gefruchtet.

    Ich habe folgende ausprobiert, jeden einzeln und auch teilweise in Kombination:
    Pragma: no-cache
    Cache-Control: no-cache
    Cache-Control: max-age=0
    Cache-Control: must-revalidate
    Cache-Control: proxy-revalidate

    Leider _immer_ mit dem Ergebnis das mir mein lokaler Proxy zwar netterweise eine Warnung mitgeschickt hat das die Resource schon ein bißchen angegammelt ist (3 Tage alt) aber geschickt hat er mir das alte Ding trotzdem, anstatt es zu aktualisieren.

    Seltsamerweise (?) öffnet der Proxy bei einer HEAD-Anfrage eine Verbindung zum Zielserver, aber bei der GET-Anfrage nicht.

    In den beiden Beispielrequests kann man z.B. sehen das bei der HEAD-Abfrage das neue Datum der Datei erkannt wird, aber bei der _danach_ erfolgten GET-Abfrage gibt er mir die alten Daten aus dem Cache wieder. (Wenn man das so mit den Aussagen in den HTTP/1.1 Spezifikationen vergleicht, dann kommt man aber schnell in Versuchung zu sagen das der Proxy Sche..... ist).

    Weiß jemand vielleicht noch einen Rat?

    Beste Grüße, Horst

    HEAD-Anfrage und Antwort:
    ---------------------------------------------------------------------

    • open Sock to Proxy: 10.10.10.80 Port: 8080

    • send Requestheaders:
      HEAD http://www.nogajski.de:80/portfolio/intropicts/intropict_05.jpg HTTP/1.1
      Host: www.nogajski.de
      Proxy-Connection: close
      Proxy-Authorization: Basic 123QX0STXTpsZXRrZWRvuXlqb2Ix
      User-Agent: PHP_CLI 4.3.8
      Cache-Control: max-age=0
      Connection: close

    • retrieve Responseheaders:
      HTTP/1.1 200 OK
      Age: 0
      Connection: close
      Content-Length: 15506
      Content-Type: image/jpeg
      Date: Sun, 08 Aug 2004 15:54:54 GMT
      Last-Modified: Sun, 08 Aug 2004 15:43:43 GMT
      Proxy-Connection: close
      Server: Apache/1.3.26 (Linux/SuSE) PHP/4.2.2 mod_perl/1.27 FrontPage/4.0.4.3
      X-Cache: PRIVATE from xxxxxx
      X-LOLA-Lastupdate: Sun, 08 Aug 2004 15:55:16 GMT
      ---------------------------------------------------------------------

    GET-Anfrage und Antwort:
    ---------------------------------------------------------------------

    • open Sock to Proxy: 10.10.10.80 Port: 8080

    • send Requestheaders:
      GET http://www.nogajski.de:80/portfolio/intropicts/intropict_05.jpg HTTP/1.1
      Host: www.nogajski.de
      Proxy-Connection: close
      Proxy-Authorization: Basic 123QX0STXTpsZXRrZWRvuXlqb2Ix
      User-Agent: PHP_CLI 4.3.8
      Cache-Control: max-age=0
      Connection: close

    • retrieve Responseheaders:
      HTTP/1.1 200 OK
      Age: 262909
      Connection: close
      Content-Length: 25087
      Content-Type: image/jpeg
      Date: Thu, 05 Aug 2004 14:57:10 GMT
      Last-Modified: Mon, 22 Dec 2003 04:02:10 GMT
      Proxy-Connection: close
      Server: Apache/1.3.26 (Linux/SuSE) PHP/4.2.2 mod_perl/1.27 FrontPage/4.0.4.3
      Warning: 13 xxxxxx URL is 3 day(s) old
      X-Cache: HIT from xxxxxx
      X-LOLA-Lastupdate: Thu, 05 Aug 2004 14:57:32 GMT
      ---------------------------------------------------------------------