Wichtiges Thema, Anstellen ohne wenn und Aber.
Lass uns gemeinsam kurz in die Kommunikation zwischen Besucher-Browser und deinem Server lauschen. Am besten etwas bildlicher gesprochen.
Der Browser deines Webseitenbesuchers sagt deinem Server, ob und welche Dateien der Browser deines Webseitenbesuchers komprimier empfangen möchte. Dein Apache-Server schaut in die Anfrage hinein und sieht was an Kompression der Besucher-Browser akzeptiert. Nun liegt es an deinem Apache-Server, welche Fähigkeiten der Server hat, wie du als Webseitenbetreiber bzw. Serverbetreiber auf diese "Kundenwünsche" reagierst.
Mit den Kompressionen bietest du dem Browser deines Webseitenbesuchers an, komprimierte assets laden zu können.
Die dynamische Kompression wird durch den Apache-Server mittels mod_deflate oder mod_brotli bei jedem Aufruf der einzelnen Ressource durchgeführt. Für dynamische html-Seiten oder json-responses , empfiehlt sich die dynamische Kompression, für Bilder und andere eher statische Assets empfiehlt sich die statische Kompression.
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html
</IfModule>
Was dein Server kann oder nicht kann ist bei Managed-Servern oder Shared-Hostings immer nicht so einfach herauszufinden. Wir bieten dir ein kostenloses .htaccess-Snippet mit dem du prüfen kannst ob mod_brotli auf deinem Server verfügbar ist.
@todo link apache-modules-test:mod_brotli
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
</IfModule>
AddOutputFilterByType
mod_filter
Was dein Server kann oder nicht kann ist bei Managed-Servern oder Shared-Hostings immer nicht so einfach herauszufinden. Wir bieten dir ein kostenloses .htaccess-Snippet mit dem du prüfen kannst ob mod_brotli auf deinem Server verfügbar ist.
@todo link apache-modules-test:mod_deflate
Da nicht immer klar ist, welchen MIME-Type der Server zurückgibt, muss auch die MIME-Type Rückgabe geprüft werden. Browser-Inspection auf und schauen.
Falls dein Server also application/javascript
statt text/javascript
zurückgibt musst du in jedem Falle application/javascript
in AddOutputFilterByType
angeben.
@todo check text/javascript
als nativer richtiger type auch angegeben werden muss.(eigentlich nicht, da der response header durch den server mit application/javascript
ausgeben wurde.)
In Shops bzw. auf Seiten mit viel Traffic macht es Sinn statische assets, sprich Bilder, Css, Js vorher zu in komprimierter Version auf dem Server zu speichern.
static scripts
In Shop-Webseiten:
Dies wird eher die Regel als die Ausnahme sein. Bilder und Javascript sowie Css Dateien wird man als Webseitenbetreiber so weit wie möglich statisch anlegen. Dynamische Dinge wie eine json-response oder die html-seite wird man eher dynamisch komprimieren.
Auf Blogseiten. Vermutlich alles statisch soweit möglich. Bis auf dynamische Aspekte der Seite, die mit Ajax geladen werden. Diese werden dann natürlich dynamisch komprimiert.