Andreas Korthaus: Hauptdatei statisch?

Hallo!

Habt Ihr die Hauptdatei jetzt statisch für gewisse Zeiträume gecached?

Grüße
Andreas

  1. Hallo,

    Habt Ihr die Hauptdatei jetzt statisch für gewisse Zeiträume gecached?

    Ja. Fuer 60 Sekunden. Schau dir doch einfach mal die Header an?

    HTTP/1.0 200 OK
    Date: Sun, 20 Oct 2002 15:19:58 GMT
    Cache-Control: public, max-age=60
    Expires: Sun, 20 Oct 2002 15:20:59 GMT
    Vary: Accept-Encoding
    Last-Modified: Sun, 20 Oct 2002 15:19:15 GMT
    Content-Type: text/html; charset=ISO-8859-1
    Content-Encoding: gzip
    Content-Length: 19773
    Age: 8
    Connection: close

    Gruesse,
     CK

    1. Hallo Christian,

      Ja. Fuer 60 Sekunden. Schau dir doch einfach mal die Header an?

      wie kann ich unter Windows ME (*hüstel*) möglichst einfach an diesen
      Header kommen? Es war da mal so eine Möglichkeit mit Lynx, aber die
      war so kompliziert, die habe ich mir ungefähr 3 Sekunden gemerkt ;-)

      Viele Grüße,
      Stefan

      1. Hallo Stefan,

        Ja. Fuer 60 Sekunden. Schau dir doch einfach mal die Header an?

        wie kann ich unter Windows ME (*hüstel*) möglichst einfach an diesen
        Header kommen?

        Ich habe mir irgendwann mal ein kleines Perl-Script dafuer geschrieben:

        #!/usr/bin/perl -w

        use strict;

        my $host = shift || 'localhost';
        my $port = shift || 80;
        my $url  = shift || '/';

        use IO::Socket;

        my $sock = new IO::Socket::INET(
          PeerAddr => $host,
          PeerPort => $port
        ) or die $!;

        print $sock <<HTTP;
        GET $url HTTP/1.1
        Connection: close
        Host: $host
        Accept-Encoding: gzip

        HTTP

        print while <$sock>;

        Ansonsten gibts ja auch noch

        http://forum.de.selfhtml.org/cgi-bin/http_trace.pl

        und

        http://www.schroepl.net/cgi-bin/http_trace.pl

        Wobei Michaels V. 1.06 kein HTTP/1.1 kann (was auch der Grund fuer den V. 2-Clone von mir
        war).

        Gruesse,
         CK

        1. Hallo Christian,

          http://forum.de.selfhtml.org/cgi-bin/http_trace.pl

          sehr schön, habe ich mir gleich mal gebookmarkt :-)

          Danke an dieser Stelle an Dich und Andreas.

          Viele Grüße,
          Stefan

      2. Hallo!

        Ja. Fuer 60 Sekunden. Schau dir doch einfach mal die Header an?

        wie kann ich unter Windows ME (*hüstel*) möglichst einfach an diesen
        Header kommen? Es war da mal so eine Möglichkeit mit Lynx, aber die
        war so kompliziert, die habe ich mir ungefähr 3 Sekunden gemerkt ;-)

        Da gabs zum einen ne Möglichkeit mit Telnet, also auf port 80 an besagtem Host anmelden, und dann

        HEAD / HTTP/1.0

        So müßte es gehen, hab es aber selbst noch nie geschafft, senden bei mir alle immer einen "bad request"
        Außerdem kann ch bei putty nur eine Zeile eingeben, nicht mehrere, naja, vielleicht erfahre ich ja in diesem Threrad mal was ich falsch mache ;-)

        Und wenn alle Stricke reißen gibt es da ja immer noch http://www.schroepl.net/cgi-bin/http_trace.pl?url=http%3A%2F%2Fforum.de.selfhtml.org%2F&method=HEAD&version=HTTP%2F1.0

        Grüße
        Andreas

        1. Hi!

          Da gabs zum einen ne Möglichkeit mit Telnet, also auf port 80 an besagtem Host anmelden, und dann

          HEAD / HTTP/1.0

          So müßte es gehen, hab es aber selbst noch nie geschafft, senden bei mir alle immer einen "bad request"
          Außerdem kann ch bei putty nur eine Zeile eingeben, nicht mehrere, naja, vielleicht erfahre ich ja in diesem Thread mal was ich falsch mache ;-)

          Habs selbst gemerkt, folgende Seite hat mir dabei geholfen

          http://www.elektronikschule.de/~grupp/protokolltests/

          Grüße
          Andreas

    2. Hi!

      Habt Ihr die Hauptdatei jetzt statisch für gewisse Zeiträume gecached?

      Ja. Fuer 60 Sekunden. Schau dir doch einfach mal die Header an?

      Wie funktioniert das genau? Ihr erstellt alle 60 Sekunden aus den aktuellen XML-Daten eine Hauptdatei als statische .html mit den entsprechenden headern, so dass die immer nur diese Datei ausgeliefert wird, und wenn möglich Proxies und Browser die Datei im Cache verwenden. So in etwa?
      Benutzt Ihr hier auch noch Euren neuen Proxy?
      Was versprecht Ihr Euch für eine Ersparnis? Denn eine Minute ist schon wenig, vor allem für den Browser-Cache, zumindest ich aktualisiere die Hauptdatei selten öfter als 1 mal pro Minute!

      Macht Ihr das nur mit der Hauptdatei?

      Viele Grüße
      Andreas

      1. Hallo,

        Wie funktioniert das genau? Ihr erstellt alle 60 Sekunden aus den aktuellen XML-Daten eine
        Hauptdatei als statische .html mit den entsprechenden headern, so dass die immer nur diese
        Datei ausgeliefert wird, und wenn möglich Proxies und Browser die Datei im Cache verwenden.
        So in etwa?

        Noe :)

        Benutzt Ihr hier auch noch Euren neuen Proxy?

        Ja. Und mit dem cachen wir die Hauptdatei. Anfragen werden halt nur an den Apache
        weitergeleitet, wenn der Cache verfallen ist.

        Was versprecht Ihr Euch für eine Ersparnis?

        Wir haben dadurch eine Last-Senkung von ca. 50%. Nur noch etwa die Haelfte der Anfragen kommen
        durch.

        Denn eine Minute ist schon wenig, vor allem für den Browser-Cache, zumindest ich
        aktualisiere die Hauptdatei selten öfter als 1 mal pro Minute!

        Aber du bist nicht der einzige. Stell dir mal vor, jemand postet, laedt die Hauptdatei neu und
        sieht dann sein Posting nicht. Ich an seiner Stelle wuerde neu posten...

        Macht Ihr das nur mit der Hauptdatei?

        Nein.

        Gruesse,
         CK

        1. Hi!

          Denn eine Minute ist schon wenig, vor allem für den Browser-Cache, zumindest ich
          aktualisiere die Hauptdatei selten öfter als 1 mal pro Minute!

          Aber du bist nicht der einzige. Stell dir mal vor, jemand postet, laedt die Hauptdatei neu und
          sieht dann sein Posting nicht. Ich an seiner Stelle wuerde neu posten...

          Dann muß halt ein Eintrag in die FAQ oder besser noch ein Vermerk beim Abschicken "kann bis zu 60 Sekunden dauern...", oder noch besser beides. Wie würdst Du denn die Traffic-Ersparnis einschätzen?

          Macht Ihr das nur mit der Hauptdatei?

          Nein.

          Womit denn noch?

          Grüße
          Andreas

          1. Hallo,

            Dann muß halt ein Eintrag in die FAQ oder besser noch ein Vermerk beim Abschicken "kann bis
            zu 60 Sekunden dauern...", oder noch besser beides.

            Wuerde beides kaum bis gar nicht beachtet. Das solltest du doch eigentlich wissen...

            Wie würdst Du denn die Traffic-Ersparnis einschätzen?

            Rechne selbst: http://webalizer.teamone.de/selfforum/ Die Caching-Header schicken wir
            seit ca. 3 Monaten, die Hauptdatei und die Postings cachen wir seit Anfang des Monats.

            Womit denn noch?

            *Alle* Anfragen werden vom Squid bedient. Vom Squid gecached werden die, die es auch duerfen.

            Gruesse,
             CK

            1. Hi!

              Danke Euch für die Erklärungen! Eine Frage hätte ich da nochmal: Wieso wird der "Schwanzabschneider" bei jedem Posting ausgeführt? Ist doch höchst ineffizient, wenn eh nur bei jedem z.B. 50. Posting was abgeschnitten wird, aber das Script alle paar Sekunden und meist um sonst auszuführen? Würde man das nicht besser stündlich per cron machen? Oder ist das nicht so teuer?

              Grüße
              Andreas

              1. Hallo Adreas,

                Eine Frage hätte ich da nochmal:

                Warum liest du echt nicht die Dokus die dazu online sind!?!?

                »»Wieso wird der "Schwanzabschneider" bei jedem Posting ausgeführt?

                Es gibt in dem Sinne keinen Schwanzabschneider mehr, denn es wurde durch den Archivierungsfunktion ersetzt. Diese funktioniert nach festlegabren Kritierien wie Größe der Hauptdatei in KB, Anzahl der Trads, Alter der Posting in Threads etc.

                Aber das ist wirklich alles ausfühlichst bechrieben worden!

                Grüße
                Thomas

                1. Hi!

                  Warum liest du echt nicht die Dokus die dazu online sind!?!?

                  Sorry, aber woher soll ich wissen das Ihr sowas dokumentiert?

                  »»Wieso wird der "Schwanzabschneider" bei jedem Posting ausgeführt?

                  Es gibt in dem Sinne keinen Schwanzabschneider mehr, denn es wurde durch den Archivierungsfunktion ersetzt. Diese funktioniert nach festlegabren Kritierien wie Größe der Hauptdatei in KB, Anzahl der Trads, Alter der Posting in Threads etc.

                  Sorry für die Fragen.

                  Grüße
                  Andreas

                  1. Hallo,

                    Warum liest du echt nicht die Dokus die dazu online sind!?!?

                    Sorry, aber woher soll ich wissen das Ihr sowas dokumentiert?

                    Die 'Dokumentation' steht in der FAQ :) Das Datenformat bekommst du aus der DTD. Das wiederum
                    ist im Download-Archiv auf SourceForge.

                    Gruesse,
                     CK

                2. Hallo Thomas,

                  Warum liest du echt nicht die Dokus die dazu online sind!?!?

                  es dürfte bekannt sein, dass ich mich doch verhältnismäßig gut auf
                  selfaktuell.teamone.de auskenne und doch weiß ich nicht, wo ich
                  diese Dokus finden kann, die mir die Funktionsweise des Forums
                  beschreiben

                  Übrigens möchte ich auch mal anmerken, dass mir in zunehmenden Maße
                  bei Deinen Postings Schreibfehler auffallen. Ich weiß, es gibt hier
                  auch Leute mit Schwächen in diesem Bereich, doch hatte ich früher
                  bei Dir eigentlich nie diesen Eindruck und deshalb bin ich doch
                  etwas verwundert darüber. Zuwenig Zeit zum Antworten oder zuwenig
                  Interesse auf korrekte Rechtschreibung und Grammatik zu achten?

                  Viele Grüße,
                  Stefan

                  1. Hallo Stefan,

                    es dürfte bekannt sein, dass ich mich doch verhältnismäßig gut auf
                    selfaktuell.teamone.de auskenne und doch weiß ich nicht, wo ich
                    diese Dokus finden kann, die mir die Funktionsweise des Forums
                    beschreiben

                    *Diese* Frage wird in der FAQ beantwortet: http://forum.de.selfhtml.org/faq/#Q-02

                    |Das Forum wirkt auf den ersten Blick schlichter als es in Wirklichkeit programmiert ist.
                    |Hinter der Oberfläche stecken eine XML-basierte Datenhaltung, XML-basierte Konfigurationsdaten
                    |und XML-basierte Templates, eine auf intelligenten Algorithmen basierende, konfigurierbare
                    |Archivierung und ein streng modulares Software-Konzept, das fast beliebige Erweiterungen
                    |zulässt. Das Forum wurde in dieser Form im ersten Halbjahr 2001 unter Open-Source-Lizenz neu
                    |programmiert. Im Laufe der Zeit wird es weiterentwickelt. Sinnvolle Verbesserungs- und
                    |Erweiterungsvorschläge, die aus längeren Erfahrungen mit dem Forumsbetrieb entstanden sind und
                    |auf allgemein positives Echo stoßen, werden dabei berücksichtigt.

                    Sowie http://forum.de.selfhtml.org/faq/#Q-31.

                    Gruesse,
                     CK

                    1. Hallo Christian,

                      Da wir gerade dabei sind: Ich will ja nicht undankbar erscheinen oder wie ein kleines Kind wirken, aber was macht denn das neue Forum?

                      Grüße,

                      Christian

                      1. Hallo,

                        Da wir gerade dabei sind: Ich will ja nicht undankbar erscheinen oder wie ein kleines Kind
                        wirken, aber was macht denn das neue Forum?

                        Die Entwicklung kannst du hier beobachten:

                        http://cforum.teamone.de/

                        Gruesse,
                         CK

                        1. Hallo Christian,

                          Die Entwicklung kannst du hier beobachten:

                          http://cforum.teamone.de/

                          O - "kewl"[tm] - gleich mal gebookmarked. Würde Dir eventuell gerne helfen, aber ich habe mir mit meinen PHP-Sachen schon einiges eingebrockt. Aber vielleicht habe ich ja wieder Zeit, wenn man auch posten kann, dann kann ich beim Bug-Tracking helfen.

                          Grüße,

                          Christian

      2. Hi Andreas,

        Wie funktioniert das genau?
        Ihr erstellt alle 60 Sekunden aus den aktuellen
        XML-Daten eine Hauptdatei als statische .html mit
        den entsprechenden headern, so dass die immer nur
        diese Datei ausgeliefert wird, und wenn möglich
        Proxies und Browser die Datei im Cache verwenden.
        So in etwa?

        Nein. Auf dem Server selbst (Apache plus Forum) hat sich kaum etwas geändert.

        Das Forum sendet zusätzlich einen HTTP-Header, der es beliebigen Clients erlaubt, diese Seite bis zu 60 Sekunden lang in einem Cache aufzubewahren.
        Das war die ganze Änderung an der Forum-Software.

        Nun können zwei Dinge passieren:

        a) Dein Browser interpretiert diesen Header und cached. Das tut er, wenn er richtig konfiguriert ist.

        b) Der Squid-Proxy interpretiert diesen Header und cached. Wenn Dein (oder ein beliebiger anderer) Browser ihn nach der Hauptdatei fragt (und nicht die Anforderung der Original-Datei erzwingt, indem _er_ entsprechende HTTP-Header sendet), dann prüft er, ob er den Inhalt seines Cache noch verwenden darf oder ob der schon "stale" ist. Je nach dem Ergebnis dieses Tests leitet er den Request an den Apache weiter oder nicht.

        Viele Grüße
              Michael

    3. Hallo nochmal,

      Habt Ihr die Hauptdatei jetzt statisch für gewisse Zeiträume gecached?
      Ja. Fuer 60 Sekunden. Schau dir doch einfach mal die Header an?
      Cache-Control: public, max-age=60

      kann es sein, dass zumindest Mozilla 1.1 damit massive Probleme hat?
      Ich habe es jetzt einige Tage beobachtet, er liefert mir eigentlich
      immer die alte Version aus, auch wenn sie schon von vor zehn Minuten
      ist. Lediglich über [STRG]+[F5] komme ich an die aktuelle Hauptseite,
      allein [F5] bringt mir die alte Version.

      Liegt es an Mozilla oder ist hier (auf dem Server) etwas faul?

      Viele Grüße,
      Stefan

      1. Hallo Stefan,

        kann es sein, dass zumindest Mozilla 1.1 damit massive Probleme hat?

        Nein, nicht im geringsten.

        Ich habe es jetzt einige Tage beobachtet, er liefert mir eigentlich
        immer die alte Version aus, auch wenn sie schon von vor zehn Minuten
        ist. Lediglich über [STRG]+[F5] komme ich an die aktuelle Hauptseite,
        allein [F5] bringt mir die alte Version.

        Liegt es an Mozilla oder ist hier (auf dem Server) etwas faul?

        Weder noch. Mozilla schickt netterweise einen Header mit, der 'If-Modified-Since' heisst. Der
        Wert fuer diesen Header ist ein Datum. Er bedeutet, der neue Content soll nur dann geschickt
        werden, wenn er sich seit dem Datum, das dort angegeben ist, veraendert hat. Ich habe einen
        Patch fuer das Forum gemacht, damit das behandelt wird. Will heissen, die vielen Mozillas hier
        kriegen nur dann den Content, wenn sich die Index-Datei (die muss sich ja bei jedem neuen
        Posting und bei jedem Archivierungs-Vorgang aendern) auch wirklich geaendert hat. Ansonsten
        wird ein '304 Not Modified' geschickt.

        Gruesse,
         CK