madesign: Wo werden die HTTP Informationen reingeschrieben.

Hallo,

ich beginne grade mich mit HTTP zu beschäftigen und, speziell das Thema "caching" und finde auch eine Menge Anleitungen und Infos aber ich bin nirgendwo darauf gestossen wo man denn nun die Regeln reinschreibt.
In den Header der Seite, in eine htaccess datei oder ein anderes Dokument?

Wo bitte werden z.b. Regeln wie:

<Files *.js>
Header add "Cache-Control" "max-age=604800"
</Files>

geschrieben?

Vielen Dank, Michael

  1. Hi,

    ich beginne grade mich mit HTTP zu beschäftigen und, speziell das Thema "caching" und finde auch eine Menge Anleitungen und Infos aber ich bin nirgendwo darauf gestossen wo man denn nun die Regeln reinschreibt.

    Welche "Regeln"?

    Wo bitte werden z.b. Regeln wie:

    <Files *.js>
    Header add "Cache-Control" "max-age=604800"
    </Files>

    geschrieben?

    Das sind Konfigurationsanweisungen für den Apachen - also werden sie an den dafür vorgesehenen Stellen notiert.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Das sind Konfigurationsanweisungen für den Apachen - also werden sie an den dafür vorgesehenen Stellen notiert.

      Hallo ChrisB,

      genau das erschliesst sich mir nicht wo denn diese Stellen sind. Irgendwo muss ich sie dich notieren oder in dein entsprechendes Dokument schreiben.

      Grüsse, Michael

  2. Hallo,

    ich beginne grade mich mit HTTP zu beschäftigen und, speziell das Thema "caching" und finde auch eine Menge Anleitungen und Infos aber ich bin nirgendwo darauf gestossen wo man denn nun die Regeln reinschreibt.
    In den Header der Seite, in eine htaccess datei oder ein anderes Dokument?

    Da muss ich mal weiter ausholen. Irgendein Hugo tippt in seinen Browser ein:

    http://example.com

    Das ist der Request. Der Apache (Webserver) guckt in seine Konfiguration und weiß was zu tun ist:
    Die Datei /index.html (Default) aus dem Dateisystem fischen, einen HTTP-Header zusammenbauen und die Datei dranhängen. Das ist die Response.

    -> Die Konfiguration des Apache bestimmt, was in den Header kommt, welcher Content-type das ist usw. Content-Type, Charset, Last-Modified, u.a. sind Felder in diesem Header, die in einschlägigen RFCs beschrieben sind.

    Willst Du Einfluss auf den Header, musst Du entweder in die Konfiguration des Apachen eingreifen, oder den Apachen mit PHP/Perl (serverseitiger Prozess) anweisen, was zu machen ist. Gewöhnlich wird in Perl mit einem

    print "Content-type: text/html\n\n";

    der Webserver angwiesen, dieses Feld in den HTTP-Header einzubauen und dazu seinen DefaultCharset dazuzugeben. Soll also das Charset verändert werden, musst das dem Server mitgeteilt werden, z.B. so

    print "Content-type: text/html; Charset=UTF-8\n\n";

    In PHP guckt der Parser, ob solche Anweisungen im Script notiert sind, hier heißt die Funktion header(); mit welcher PHP den Webserver was anweist, z.B.

    header("Content-type: text/html; charset=$charset");

    Genauso funktioniert das mit den anderen Header-Feldern, auch fürs Cachen.

    http://rolfrost.de/lastmod.html

    Neben Last-Modified, dem ältesten Verfahren, gibt es Weitere, wie Du schon schriebst. Aber schau Dir ruhig mal meinen Artikel an, ich denke er trägt zum Verständnis bei.

    Horst

    1. Hallo danke für die ausführliche Beschreibung. Leider ersehe ich daraus immer noch nicht wo diese Information geschrieben werden.

      In den Header der Seite?
      In eine htaccess datei?
      Oder anderswo?

      Irgendwo müssen die "Anweisungen" ja letztendlich stehen.

      Grüsse, Michael

      1. Hallo danke für die ausführliche Beschreibung. Leider ersehe ich daraus immer noch nicht wo diese Information geschrieben werden.

        In den Header der Seite?

        ja

        In eine htaccess datei?

        ja

        Oder anderswo?

        ja

        Irgendwo müssen die "Anweisungen" ja letztendlich stehen.

        s.o.

        --
        Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
        1. Sorry,

          hab das jetzt zweimal langsam durchgelesen und auch dein Tutorial.

          Dein "kleines Script" z.b.

          #!/usr/bin/perl

          ###########################################################################
          use HTTP::Date;

          my $lm = time2str(time); # Formatiert den Date-String RFC-gerecht

          header

          print "Last-Modified: $lm\n";
          print "Content-type: text/html\n\n";

          end_header

          print "<p>IF_MODIFIED_SINCE: $ENV{HTTP_IF_MODIFIED_SINCE}</p>";
          print "<p>Last-Modified: $lm</p>";
          exit;

          muss ja irgendwo stehen.

          Erstelle ich ein neues Dokument?
          Oder kommt das Skript in den Header der html Seite?
          Also wo genau muss das Skript z.b. eingefügt werden?
          Anleitungen gibt es ja eine Menge im Internet aber eben genau diese Info fehlt überall.

          Grüsse, Michael

          1. Ich will Hotte da nicht zu nahe treten, aber das hat alles nur noch wenig mit Deiner eigentlichen Frage zu tun, ChrisBs Antwort war da imho wesentlich zielführender. Googlen nach seinen und Deinen Stichpunkten bringt z.B. folgendes zu Tage:

            http://www.askapache.com/htaccess/apache-speed-cache-control.html
            http://www.askapache.com/htaccess/htaccess.html

            Ob Du die Header überhaupt verändern kannst, hängt wiederum mit den Einstellungen des Apache selbst zusammen...

          2. hi,

            Oder kommt das Skript in den Header der html Seite?

            Es kommt ganz darauf an, was Du machen willst und was Dir zur Verfügung steht. Wenn Die HTTP-Header angepasst werden müssen, gibt es prinzipiell Möglichkeiten:

            1.Konfiguration des Webservers => siehe Dokumentation (httpd.conf, .htaccess).

            2.Eigene Scripts, PHP, Perl usw.

            Also wo genau muss das Skript z.b. eingefügt werden?

            Mit PHP z.B. hast Du die Möglichkeit, sowohl Script-Code als auch HTML-Code in eine Datei zu schreiben.

            Anleitungen gibt es ja eine Menge im Internet aber eben genau diese Info fehlt überall.

            Zu pauschal. Was willstn überhaupt machen? Nur mal so nebenbei gefragt.

            Hotti

            1. Danke,

              das bringt mich schon mal weiter.
              Ich will das caching für eine statische Webseite aktivieren und dazu "Expires" btw. "Cache-Control: max-age" verwenden.

              Es gibt hier eine sehr schöne Anleitung z.b. caching
              aber es entzieht sich mir wo die Anweisungen wie:
              #Create filter to match files you want to cache
              <Files *.js>
              Header add "Cache-Control" "max-age=604800"
              </Files>
              reingesetzt bzw definiert werden.

              Grüsse, Michael

              1. Hallo,

                Es gibt hier eine sehr schöne Anleitung z.b. caching
                aber es entzieht sich mir wo die Anweisungen wie:
                #Create filter to match files you want to cache
                <Files *.js>
                Header add "Cache-Control" "max-age=604800"
                </Files>
                reingesetzt bzw definiert werden.

                natürlich in die Apache-Konfigurationsdatei - in diesem Fall in die lokale, die nur für das Verzeichnis gilt und gewöhnlich .htaccess heißt.
                Das steht aber auch in dem Artikel, den du verlinkt hast (direkt über der schwarzen Box mit dem Code).

                Ciao,
                 Martin

                --
                Schildkröten können mehr über den Weg berichten als Hasen.
                1. Hey super Martin,

                  danke für die Hilfe und den Absatz hab ich wirklich übersehen.

                  Ausserdem hab ich den Begriff "Apache Konfigurationsdatei" nicht mit .htaccess gleichgesetzt.

                  Nun ist es für mich auch klar und wenn mich einer fragt sag ich ihm, schreibs in die Apache Konfigurationsdatei. (Vielleicht weiss er ja was das ist) ;-)

                  Grüsse aus Tucuman, (Nord Argentinien) Michael

                  1. Hey super Martin,

                    jaja, der Martin.... ;-)

                    Ausserdem hab ich den Begriff "Apache Konfigurationsdatei" nicht mit .htaccess gleichgesetzt.

                    Es ist _eine_ der möglichen Konfigurationsdateien. Und die muss nichtmal .htaccess heißen. Btw., hier gibts nen schönen Artikel zu diesem Thema.

                    Nun ist es für mich auch klar und wenn mich einer fragt sag ich ihm, schreibs in die Apache Konfigurationsdatei. (Vielleicht weiss er ja was das ist) ;-)

                    Es wird Dir solange keine Ruhe lassen, bis Du selbst genau weißt, was Du tust in dieser Hinsicht (behaupte ich mal).

                    Grüsse aus Tucuman, (Nord Argentinien) Michael

                    Bis demnächst in Tulum (Mexico),
                    Maya-Hotte

                    --
                    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.