dedlfix: Frage zum Wiki-Artikel „meta“ / REFRESH

Beitrag lesen

problematische Seite

Tach!

Wie macht er das, wenn lediglich das Script weiß, welche Datei auszuliefern ist?

Mit "nur" meinte ich, dass im Script selbst keine Prüfung der Zeitangaben erfolgt. Außer dem Last-Modified liefert das Script natürlich auch den Inhalt.

Gut, der Webserver ruft also erstmal das Script auf und prüft anschließend, ob es ein Last-Modified mitgeschickt hat, woraufhin er das, was das Script grad eben in den Ausgabepuffer geschrieben hat, wieder wegwirft und stattdessen mit 304 antwortet. Find ich nicht in jedem Fall prickelnd, das Script unnötige Arbeit tun zu lassen.

Der Webserver parst jedoch die gesendeten Header und prüft die Zeitabgaben. Bei Übereinstimmung (if-modified-since == last-modified) sendet der Webserver spontan einen Status 304 Not Modified ohne Message Body, Beispiel untenstehend:

Das Beispiel hatte es mir noch nicht verdeutlicht. Da fehlte der Teil auf dem Server, insbesondere das Script, das ja die entscheidende Rolle spielt mit einem zu sendenden Last-Modified- nebst anderen das Caching erlaubenden Headern. Dass der Client einen If-Modified-Hader schickt und ein 304 zurückbekommt, war ja schon klar.

<?php
header('Cache-Control: private, must-revalidate, max-age=0');
header('Last-Modified: '.gmdate('D, d M Y H:i:s', mktime(10, 23, 42, 4, 22, 2017)).' GMT');

echo date('Y-m-d H:i:s');

Damit war es nachvollziehbar, jedenfalls im Chrome. Die ausgegebene Uhrzeit muss bei Neuanforderungen z.B. mit F5 stehenbleiben, außer bei Strg+F5. Firefox hatte bei mir keine Lust, einen If-Modified-Since zu senden.

dedlfix.

0 92

Frage zum Wiki-Artikel „meta“ / REFRESH

  1. 0
    1. 0
    2. 0
  2. 0
    1. 0
      1. 0
        1. 0
          1. 0
            1. 0
              1. 0
                1. 0
                2. 0
                  1. 0
              2. 0
                1. 0
                  1. 0

                    Anmerkungen zum Forum / Cache-Verhalten

                    1. 0
                      1. 0
                        1. 0
                          1. 0
              3. 0
                1. 0
                  1. 0
                    1. 0
                    2. 0
                      1. -1
              4. 0
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 1

                          Esel, Wackelpudding und Cache-Header

                          1. 0
                            1. 0
                2. 0
    2. 0
      1. 0
        1. 0
      2. 0
        1. 0
          1. 0
            1. 0
          2. 0
            1. 0
              1. 0
                1. 2
                  1. 1
                    1. 0
                      1. 0
                  2. 1
                  3. 0
                    1. 0
                      1. 0
                        1. 0
                          1. 0
                            1. 1
                              1. 0
                            2. 0
                        2. 0
                          1. 0
                          2. 0
                            1. 0
                              1. 0
                            2. 0
                              1. 0
                                1. 0
                                  1. 0
                            3. 0
                              1. 0
                                1. 0
                                2. 0
                        3. 0
                          1. 0
                            1. 0
                              1. 0
                                1. 0
                              2. 0
                                1. 0
                                  1. 0
                                2. 0
                                  1. 0
                      2. 0
                        1. 0
                        2. 0
                    2. 0
  3. 0

    Alles ganz einfach ...

    1. 0
      1. 0
        1. 0
    2. 0
      1. 0