Andreas Korthaus: Caching-Strategien, Komprimierungs-Strategien

Beitrag lesen

Hi!

Meine Expires-Definitionen sind sehr spezifisch pro MIME-Type. Für HTML liegen sie eher im Stundenbereich, für Graphiken eher im Bereich von Wochen ...

mangels mod_expires habe ich mal den Apachen (jetzt 1.3.28) neu übersetzt mit dem Modul, ich brauchte nämlich auch noch ein paar andere Dinge.

Jetzt habe ich folgende Einstellungen:

ExpiresByType image/jpeg "access plus 14 days"
    ExpiresByType image/gif "access plus 14 days"
    ExpiresByType application/x-javascript "access plus 7 days"
    ExpiresByType text/css "access plus 7 days"

Das mal als erstes. Ich denke ich mache CSS noch kürzer, vielleicht Bilder noch länger.

Was anderes habe ich nicht, wie gesagt ist der HTML-Output von PHP komplett dynamisch. Aber es ist wirklich unglaublich was sich dadurch die Geschwindigkeit verändert,ich spare mit 10-20 Requests pro Seite! Nur das erste mal dauert es länger als früher.

Hast Du mal durchgerechnet, ob es sich rechnet, das Zeug einzubinden und komprimiert auszuliefern?

Das wäre natürlich eien interessante Alternative. Denn beim Komprimieren von JS... bekomme ich Probleme mit älteren Browsern. Oder kann ich abhängig vom Browser(ich weiß...) z.B. beim Netscape 4 verhindern dass der die Komprimierte Version des Javascriptes bekommt?

Die Sache ist nur, dass ich es eigentlich gar nicht so oft brauche, d.h. wenn es eh nur einmal die Woche runtergelanden wird ist das sicher der schnellste Weg, nur wie gesagt, das einmalige Laden dauert ein bisschen länger.

Kann ich eigentlich auch bestimmte Javascript-Dateien vom Caching ausnehmen, wenn ich das serverseitig konfiguriere?

Natürlich. (<FilesMatch> etc.)

Ah ja! Danke!

Was jetzt aber nicht komprimiert wird, sind die Javascripte(die teilweise auch etwas größer sind), und die CSS-Dateien. Wie komprimiere ich diese jetzt am besten?
Oft werden die eh nicht verändert, die Frage ist, ob es Sinn macht mod_gzip zu installieren, obwohl ich es nur für die Verhältnismäßig wenigen Dateien brauche.

Wie oben schon erwähnt: Rechne durch, ob es besser ist, das Zeug in PHP zu includen und dann gleich mit zu komprimieren, oder ob Du den separaten Caching-effekt haben willst.

Gut wäre sowohl komprimiert als auch gecached!

Das Problem bei der Berechnung ist, daß Du Annahmen über die durchschnittliche Caching-Strategie Deiner Besucher brauchst - diese erhältst Du aus der HTTP304-Quote Deiner Zugriffe, _nachdem_ Du alles mit optimalen Expires-Headern versorgt hast ... je niedriger dieser Quote ist, um so besser ist Caching gegenüber Include+gzip.

Ja, der Wert war _sehr_ hoch bei mir, mal sehen wie sich das jetzt entwickelt! Im prinzip müsste er jetzt auf 0 sinken, da ich alles außer PHP-Output cache!

2 Variante wäre mit Content-Negotiation zu arbeiten, d.h. ich erstelle manuell auch ...js.gz und ...css.gz Dateien, die ich dann mit "options multiview" in der httpd.conf des Apachen entsprechend ausgeben lasse.

Das ist halt aufwändig zu pflegen. (Es sei denn ... siehe unten.)

Ist bei 10 Dateien aber wohl ein vertretbarer aufwand, und vermutlich recht performant.

Noch eine Variante wäre es, die Komprimierung der HTML-Ausgabe der PHP-Scripte nicht PHP, sondern mod_gzip zu überlassen, was haltet Ihr davon?

mod_gzip 1.3.26.1a beherrscht _beide_ von Dir vorher beschriebenen Methoden und könnte Dir die statischen *.gz-Dateien automatisch herstellen und aktualisieren ... (Christians Implementierung!)

Ja, davon habe ich gehört, ich habe ers mir heute auch nochmal angesehen, vielleicht baue ich es auch noch ein. Ist halt die Frage ob sich das für die paar wenigen Dateien lohnt. Mit multiview könnte ich ja glaueb ich wirklich USer-Agent abhängig .gz Ausliefern, udn ich habe keinen "on-the-fly Overhead", ist mir im Moment am sympatischsten.

Eigentlich wäre das ja nicht nötig, also müsste der Weg mit PHP und kpl. ohne mod_gzip der effektivere sein, oder?

Es gibt schon Gründe für die Existenz von mod_gzip - trotz mod_deflate 2.0 ...

Ja, die Frage ist, ob sich das auch für die HTML-Ausgabe der PHP-Scripte lohnt. Ich verwende zu zeit wie gesagt eine PHP-Funktione die die Ausgabve puffert und am Ende komprimiert ausgibt. Da hätte ich vermutlich auch von mod_gzip keine Vorteile, oder?

Grüße
Andreas

0 43

Website zu langsam ?

player2000
  • html
  1. 0
    Fabian Transchel
    1. 0
      player2000
      1. 0
        Michael Schröpl
        • grafik
      2. 0

        Grafiken optimieren

        rainer groth
        • software
  2. 0
    Michael Schröpl
  3. 0
    rainer groth
  4. 0
    Heiner
    1. 0
      Fabian Transchel
      1. 0
        Heiner
      2. 0
        Andreas Korthaus
        1. 0
          Heiner
          1. 0
            Andreas Korthaus
            1. 0

              Caching-Strategien

              Michael Schröpl
              • https
              1. 0
                Andreas Korthaus
                1. 0
                  Michael Schröpl
                  1. 0

                    Caching-Strategien, Kompremierungs-Strategien

                    Andreas Korthaus
                    1. 0

                      Caching-Strategien, Komprimierungs-Strategien

                      Michael Schröpl
                      1. 0
                        Andreas Korthaus
                        1. 0
                          Michael Schröpl
                          1. 0
                            Michael Schröpl
                            1. 0
                              Andreas Korthaus
                              1. 0
                                Michael Schröpl
                                1. 0
                                  Andreas Korthaus
                                  1. 0
                                    Michael Schröpl
                                    1. 0
                                      Andreas Korthaus
          2. 0
            Michael Schröpl
  5. 0
    Siechfred
  6. 0
    btsv fan
    1. 0
      player2000
      1. 0
        at
      2. 0
        Andreas Korthaus
        1. 0
          player2000
          • grafik
          1. 0
            Andreas Korthaus
          2. 0
            Siechfred
            1. 0
              Christian Seiler
              1. 0

                Spart Transparenz Speicherplatz?

                Siechfred
                1. 0
                  Christian Seiler
                  1. 0
                    Siechfred
                  2. 0
                    Michael Schröpl
  7. 0
    player2000
    1. 0
      Michael Schröpl
      1. 0
        player2000
        • grafik