Stefan Muenz: Expire-Wert auf -1 setzen?

Liebe Forumsbesucher,

jemand hat mir gerade in einer Mail geschrieben, dass die Angabe:
<meta http-equiv="expires" content="0">
zum erzwungenen jedmaligen Neuladen einer Seite beim Aufrufen falsch sei. Richtig sei:
<meta http-equiv="expires" content="-1">

Kann das jemand bestaetigen?
Eventuell browser-abhaengig?

viele Gruesse
  Stefan Muenz

  1. Hallo Stefan,

    jemand hat mir gerade in einer Mail geschrieben, dass die Angabe:
    <meta http-equiv="expires" content="0">
    zum erzwungenen jedmaligen Neuladen einer Seite beim Aufrufen falsch sei. Richtig sei:
    <meta http-equiv="expires" content="-1">

    Kann das jemand bestaetigen?
    Eventuell browser-abhaengig?

    Wäre mir ganz neu.
    Der anzugebene Wert ist die seit dem letztem Laden vergangene Zeit in Sekunden, "0" muß also auf jeden Fall gehen.
    Negative Zahlen sollten theoretisch dann auch funktionieren, aber ich habe meine Zweifel, ob das bei allen Browsern berücksichtigt wurde. Es könnte durchaus sein, daß durch die binäre Darstellung eher das Gegenteil bewirkt wird (für Freaks: "unsigned int/long" und die erste Stelle...).

    Zur Not gibt's auch noch
    <meta http-equiv="expires" content="now">
    Zumindest hab' ich das öfters gelesen und zumindest Netscape und IE haben das verstanden, ich weiß nicht, ob's ein Standard ist...

    Ciao,
    Mirko

    1. Hallo nochmal,

      Ich hab' mal im W3C gesucht...
      Anscheinend ist offiziell nur die Version mit Datum spezifiziert...
      <meta http-equiv="expires" content="Tue, 04 Dec 1993 21:29:02 GMT">

      Ciao,
      Mirko

      1. Hallo Mirko

        Anscheinend ist offiziell nur die Version mit Datum spezifiziert...
        <meta http-equiv="expires" content="Tue, 04 Dec 1993 21:29:02 GMT">

        oh <g>, in der HTML4-Spec, die ich immer finde, steht als Beispiel:
        <META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">

        Aber das ist ja auch das Problem dabei und generell bei den Meta-Tags - es sind immer alles nur Beispiele. W3 legt da keine Einzelheiten fest, nur, dass es ein <meta>-Tag mit dem erlaubten Attribut http-equiv gibt, dessen Aufgabe es ist, "Informationen" fuer die WWW-Serversoftware zur Verfuegung zu stellen.

        Vielleicht werde ich das auch demjenigen antworten, der mir die Mail geschrieben hat. Es gibt letztendlich so viele Moeglichkeiten fuer die Syntax eizelner Meta-Tag-Angaben, wie es Software gibt, die da irgendwas ausliest.

        viele Gruesse
          Stefan Muenz

        1. Hallo Stefan,

          oh <g>, in der HTML4-Spec, die ich immer finde, steht als Beispiel:
          <META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">

          <g>
          Die hatte ich kurz danach erwischt...

          Aber das ist ja auch das Problem dabei und generell bei den Meta-Tags - es sind immer alles nur Beispiele. W3 legt da keine Einzelheiten fest, nur, dass es ein <meta>-Tag mit dem erlaubten Attribut http-equiv gibt, dessen Aufgabe es ist, "Informationen" fuer die WWW-Serversoftware zur Verfuegung zu stellen.

          Für "NAME"-Tags ist das wohl leider so, aber für die http-equiv's steht auch da:
          "HTTP servers may use the property name specified by the http-equiv attribute to create an RFC822-style header in the HTTP response. Please see the HTTP specification (RFC2068) for details on valid HTTP headers."

          Das klingt für mich ganz so, als ob für http-equiv die ganz normalen HTTP-Header-Angaben verwendet werden können (bzw. können sollten)...

          Vielleicht werde ich das auch demjenigen antworten, der mir die Mail geschrieben hat. Es gibt letztendlich so viele Moeglichkeiten fuer die Syntax eizelner Meta-Tag-Angaben, wie es Software gibt, die da irgendwas ausliest.

          Das Problem gibt's im Internet leider an allen Ecken und Enden... :-(

          Ciao,
          Mirko

      2. Hallo nochmal nochmal,

        Ich hab' mal im W3C gesucht...

        und noch ein bißchen weiter gesucht...

        Anscheinend ist offiziell nur die Version mit Datum spezifiziert...
        <meta http-equiv="expires" content="Tue, 04 Dec 1993 21:29:02 GMT">

        Also, es ist so:
        Die "http-equiv"-Tags sind wie ein entsprechender http-Header zu interpredieren; es ist also genauso, als ob in einem cgi-Script ein "Expires: ..." nach dem Content-type: kommt.
        Nach RFC2068 (http 1.1), 14.21 ist für Expires-header nur ein Datum im GMT-Format erlaubt, alles andere haben wir den Browser-Programmierern zu verdanken, die http 1.0 mal eben erweitert hatten....

        Eigentlich (RFC2068 13.2.*) müßte man das so regeln:
        <meta http-equiv="Cache-Control" content="no-cache">
        Aber das wird leider von noch weniger Browsern verstanden...

        Ciao,
        Mirko

        1. Nach RFC2068 (http 1.1), 14.21 ist für Expires-header nur ein Datum im GMT-Format erlaubt

          Genauer:

          The format is an absolute date and time as defined by HTTP-date in section 3.3; it MUST be in RFC1123-date format

          In "section 3.3" sind zwar auch Delta-Angaben (also die Sekunden-Angaben) erlaubt, aber "RFC1123" ist das altbekannte Datumsformat... :(

          Mirko

  2. Hallo Stefan!

    dass die Angabe:
    <meta http-equiv="expires" content="0">
    zum erzwungenen jedmaligen Neuladen

    Also: der IE 5 hat nicht jedesmal einen Reload gemacht, oft musste zusätzlich [f5] gedrückt werden. Beim 4er schien es besser zu laufen.

    Bis danndann

    PAF (patrickausfrankfurt)

  3. Hallo Stefan,

    <meta http-equiv="expires" content="0">

    ich hatte auch schon mal einige Quellen durchsucht,
    war aber nicht sonderlich erfolgreich.
    Das einzige was ich (irgendwo) gefunden hatte war
    content="now".
    Überzeugt hatte es mich jedoch nicht.

    Klaus

  4. hi!

    jemand hat mir gerade in einer Mail geschrieben, dass die Angabe:
    <meta http-equiv="expires" content="0">
    zum erzwungenen jedmaligen Neuladen einer Seite beim Aufrufen falsch sei. Richtig sei:
    <meta http-equiv="expires" content="-1">

    RFC 1945 zum HTTP/1.0-Protokoll, Abschnitt 10.7 hat zum Expires-Header folgendes zu bieten:

    === cut ===
       The format is an absolute date and time as defined by HTTP-date in Section 3.3.

    (...)

    Note: Applications are encouraged to be tolerant of bad or
          misinformed implementations of the Expires header. A value of zero
          (0) or an invalid date format should be considered equivalent to
          an "expires immediately." Although these values are not legitimate
          for HTTP/1.0, a robust implementation is always desirable.

    (Quelle: http://www.faqs.org/rfcs/rfc1945.html)
    === cut ===

    Also niemals -1, evtl. 0 und sonst immer ein Datum.

    bye, Frank!

    1. Hallo Frank,

      »»Note: Applications are encouraged to be tolerant of bad or misinformed implementations of the Expires header. A value of zero (0) or an invalid date format should be considered equivalent to an "expires immediately." Although these values are not legitimate for HTTP/1.0, a robust implementation is always desirable.

      Wenn ich euch nicht haette <g>!
      Nun konnte ich dem Mailmenschen, der behauptet hatte, der entsprechende Befehl in SELFHTML sei falsch beschrieben, weil es -1 lauten muesse, aber doch noch ein huebsches Paroli bieten ;-)

      viele Gruesse
        Stefan Muenz