Ergebnis 1 bis 5 von 5

Thema: Einige Fragen zum TL-Caching

  1. #1
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard Einige Fragen zum TL-Caching

    Hallo,

    hätte einige Fragen hinsichtlich Komprimierung und Caching und würde mich freuen, wenn von Euch jemand folgendes überprüfen bzw. nachvollziehen könnte:

    System: TYPOlight 2.7.3 @ XAMPP 1.7.1

    (i) Komprimierung von CSS/JS-Komponenten
    Vorausgeschickt:
    Ressourcen liegen sowohl in komprimierter (GZip) als auch unkomprimierter Form vor.
    GZip-Kompression ist in den TYPOlight-Einstellungen aktiviert, die betreffenden Rewrite-Direktiven in der .htaccess natürlich auch.
    TYPOlight-Caching ist deaktiviert.

    Habe bemerkt, dass der Response Header von GZip-komprimierten Javascript-Dateien als MIME-Content-Type "text/css" enthält? Ist das so korrekt bzw. normal? Und wenn ja, warum?

    Deaktiviere ich die GZip-Kompression (in den TL-Einstellungen und in der .htaccess) enthalten die Response-Header der Javascripte den MIME-Content-Type "application/javascript"


    (ii) Proxy Caching von komprimierten Ressorcen
    Sollte man eigentlich für GZip-komprimierte Ressourcen (CSS und JS) im Header das "Vary: Accept-Encoding" setzen, um ev. Probleme mit (älteren) Proxy-Servern zu vermeiden? Wenn ich das richtig verstanden habe, bewirkt dieser Header-Eintrag, dass die betreffenden Ressourcen am Proxy sowohl in komprimierter als auch in unkomprimierter Form gespeichert werden und dadurch dem Client jeweils eine interpretierbare Version angeboten werden kann.
    Wie könnte man denn in TL für diese komprimierten Ressourcen den Header dementsprechend setzen?


    (iii) Caching und Komprimierung
    Testfall 1:
    GZip-Kompression: aktiviert
    TL-Caching: global deaktiviert (im Webseiten-Root)
    Browser-Cache und "system/tmp" geleert

    Wenn ich nun eine beliebige Frontend-Seite aufrufe und mir das Apache Access-Log anschaue, dann erhalte ich folgende Request-Einträge:
    - HTML-Datei wird in komprimierter Form übertrage mit Status 200
    - alle anderen Ressourcen der Seite (css, js, Bilder usw.) werden (falls zutreffend) auch in komprimierter Form übertragen mit Status 200

    Rufe ich dieselbe Seite jetzt nochmals auf, dann erhalte ich im Log folgende Einträge:
    - alle Ressourcen und auch die HTML-Datei haben den Status 304 Not Modified (mit Ausnahme der cron.php, welche den Status 200 hat); kein HTML-/Ressourcen-Traffic.

    Rufe ich die Seite ein weiters Mal auf:
    - gleiches Ergebnis wie vorhin, lediglich die HTML-Datei hat jetzt wieder den Status 200 und als Traffic wird die komprimierte Dateigröße angezeigt.

    Bei jedem weiteren Refresh wird die HTML-Seite (und nur diese) dann abwechselnd einmal mit Status-Code 200, dann wieder mit Code 304 übertragen. Ist das so normal bzw. kann das jemand bestätigen?

    Testfall 2:
    GZip-Kompression: aktiviert
    TL-Caching: global aktiviert (im Webseiten-Root)
    Browser-Cache und "system/tmp" geleert

    Beim Aufruf der Frontend-Seite erhalte ich dann im Server-Log:
    - alle Ressourcen und die HTML-Seite werden (falls zutreffend) in komprimierter Form übertragen mit jeweils Status-Code 200

    Erneuter Refresh der Seite:
    - alle Ressourcen (Ausnahme: cron.php) haben nun wiederum den Status-Code 304, kein Ressourcen-Traffic, einzig die HTML-Seite hat den Status 200 und wird in UNKOMPRIMIERTER Form übertragen

    Dasselbe Ergebnis erhält man dann für alle weiteren Aktualisierung der Seite - das HTML-Dokument scheint (jedenfalls laut Server-Log) immer in unkomprimierter Form übertragen zu werden.

    Daher meine Frage: Wieso wird denn bei aktiviertem TL-Cache das HTML-Dokument nicht in GZip-komprimierter Form ausgeliefert/übertragen?
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  2. #2
    Contao-Urgestein Avatar von FloB
    Registriert seit
    19.06.2009.
    Ort
    Sonnensystem
    Beiträge
    1.618

    Standard

    Zitat Zitat von xchs Beitrag anzeigen
    Habe bemerkt, dass der Response Header von GZip-komprimierten Javascript-Dateien als MIME-Content-Type "text/css" enthält? Ist das so korrekt bzw. normal? Und wenn ja, warum?
    Dieses Problem wird in 2.7.4 behoben sein.


    Zum Rest kann ich nur folgendes sagen: TL komprimiert keine CSS- und HTML-Dateien von sich aus. Die Daten müssen (wie bei manchen JS-Dateien) bereits als z. B. GZIPte Datei vorliegen. Wenn bei dir andere Dateien komprimiert verschickt werden, kann es sein, dass bei deinem Apache mod_deflate (o. ä.) aktiviert ist.
    So long,
    FloB since Nov. 2007 +706P +115P and counting

  3. #3
    Contao-Nutzer
    Registriert seit
    21.06.2009.
    Ort
    Neu Purkersdorf, Österreich
    Beiträge
    203

    Standard Test mit Yslow

    Ich konnte da auch einiges beobachten: (bin da noch ein echter grünling...aber soweit meine bisherige analyse)

    Es dürfte auch der Speicherort maßgeblich sein:
    Meine ganzen *.css dateien die ausserhalb der Ordner liegen als direkt in
    usr/local/www/ werden NIE komprimiert ausgeliefert, auch wenn ich diese gezippt dorthin lege. (natürlich nicht update sicher, bzw werden die ja durch einen cronjob regelmäßig erneuert)

    Dies gilt auch für manche *.css oder *.js von modulen. zB [photoshow] dieses photoshow.js wir ebenfalls nie komprimiert ausgeliefert.

    Warum das so ist, konnte ich noch nicht nachvollziehen...alle anderen werden gezippt geliefert.

    Bei mir ist mod_deflate aktiv.

    Die Änderung in der .htaccess wie im Ticketsystem beschrieben, habe ich bei mir auch getestet:

    Im "webinspector von safari" zeigt es dann bei *.js an:

    Ressource wurde als Skript interpretiert, aber mit MIME-Typ text/css übertragen.
    Genauso wie vor der Änderung....

    Sieht jetzt so aus:

    Code:
    ##
    # Rewrite base
    ##
    
    RewriteEngine On
    RewriteBase /
    
    ##
    # Block malicious requests
    ##
    RewriteCond %{REQUEST_URI} (ftp|https?):|/etc/ [NC,OR]
    RewriteCond %{QUERY_STRING} (ftp|https?):|/etc/ [NC]
    RewriteRule .* - [F,L]
    
    ##
    # Compress .js and .css files
    ##
    AddEncoding gzip .gz
    <FilesMatch "\.js\.gz$">
      AddType "text/javascript" .gz
    </FilesMatch>
    <FilesMatch "\.css\.gz$">
      AddType "text/css" .gz
    </FilesMatch>
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME} \.(js|css)$
    RewriteCond %{REQUEST_FILENAME}.gz -f
    RewriteRule ^(.*)$ $1.gz [QSA,L]
    
    ##
    #Domain ohne www umleiten
    ##
    RewriteCond %{HTTP_HOST} ^domain\.at$
    RewriteRule ^(.*)$ http://www.domain.at/$1 [R=301,L]
    
    ##
    # Rewrite TYPOlight URLs
    ##
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .*\.html$ index.php [L]
    
    ##
    #Fehlerseiten festlegen
    ##
    ErrorDocument 404 /index.php
    ErrorDocument 403 /index.php
    
    ##
    #turn ETag off for file
    ##
    Header unset ETag
    FileETag None

    LG Klaus
    Geändert von klaus_tkm (19.09.2009 um 17:12 Uhr)

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das Ticket bzgl. Komprimierung in der .htaccess kannte ich noch nicht - werde die neuen Direktiven mal bei Gelegenheit testen.

    Noch eine Anmerkung: Würde eine Anweisung
    Code:
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
    in der .htaccess hinsichtlich Traffic-Minimierung was bringen?
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  5. #5
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von FloB Beitrag anzeigen
    Zum Rest kann ich nur folgendes sagen: TL komprimiert keine CSS- und HTML-Dateien von sich aus. Die Daten müssen (wie bei manchen JS-Dateien) bereits als z. B. GZIPte Datei vorliegen. Wenn bei dir andere Dateien komprimiert verschickt werden, kann es sein, dass bei deinem Apache mod_deflate (o. ä.) aktiviert ist.
    Wie schon in meinem Post erwähnt liegen die übertragenen Ressourcen (CSS und JS) ja auch in GZip-ter Form vor.
    Einzig das Übertragungsverhalten der HTML-Datei kann ich nicht ganz nachvollziehen: Ist TL-Caching deaktiviert, wird diese in komprimierter Form übertragen, sobald ich das TL-Caching wieder aktiviere, erfolgt keine komprimierte Übertragung mehr.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Post Variablen - Caching?
    Von angela im Forum Formulare
    Antworten: 5
    Letzter Beitrag: 22.09.2012, 23:54
  2. Einige Anpassungen (News)
    Von Benjamin im Forum Layout / Templates / Holy Grail
    Antworten: 4
    Letzter Beitrag: 26.12.2010, 12:43
  3. Neu, begeistert, 4 Fragen: Dateiendung,Caching,Internlinks,Piwik
    Von Jens_ im Forum Installation / Update
    Antworten: 10
    Letzter Beitrag: 31.03.2010, 13:54
  4. [Auflistungsmodul] - Einige Fragen
    Von Snaky im Forum Allgemeine Inhaltselemente
    Antworten: 0
    Letzter Beitrag: 26.02.2010, 19:04
  5. Anfänger hat einige Fragen...
    Von phyton2706 im Forum Layout / Templates / Holy Grail
    Antworten: 5
    Letzter Beitrag: 30.10.2009, 14:11

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •