Drupals CSS Dateien - was passiert im Browser?
Eingetragen von quiptime (4972)
am 16.11.2007 - 00:58 Uhr in
am 16.11.2007 - 00:58 Uhr in
Weiss Jemand, ob Drupal die CSS Dateien so ausliefert das sie vom Browser gecached werden?
Wenn gecached sollte man Einfluss auf die Cachingparameter nehmen koennen. Frage waere dann: Wo?
------------------
quiptime
- Anmelden oder Registrieren um Kommentare zu schreiben
Drupals CSS Dateien im Browsercache?
am 17.11.2007 - 11:12 Uhr
Moechte den Thread noch mal vorholen.
Wie sendet Drupal die gecachten CSS Dateien zum Browser? Einfach so oder speziell aufbereitet mit einem extra Header?
Ich frage deswegen nach dem extra Header weil es damit moeglich ist, das CSS Dateien in den Browsercache gelangen. Sonst tun sie das wohl nicht.
Wenn sie in den Browsercache geschickt werden ist das ein zusaetzlicher Performancegewinn unabhaengig von Drupals CSS Caching selbst. Weiterhin gibt im Falle eines Browsercaching der CSS Dateien einen Lifetime Parameter. Den kann man definieren.
Da mir im Zusammenhang von Drupal noch nichts mit dem Parameter Lifetime CSS Datei unterkommen ist entsteht bei mir die Frage, ob Drupals CSS Dateien im Browser gecached werden.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Drupal liefert keine
am 17.11.2007 - 18:45 Uhr
Drupal liefert keine CSS-Dateien aus, sondern der Webserver, unabhängig davon ob und wie man Drupal cachen und/oder CSS-Dateien komprimieren lässt. Am Ende wird lediglich eine statische (CSS-)Datei ausgeliefert und entsprechend gibt es da auch keine Einflussmöglichkeit über irgendwelche via PHP generierten HTTP-Header, da PHP hier nicht nicht reinspielt.
Entsprechend ist es Sache des Browsers mittels der vom Webserver gelieferten HTTP-Header (Last-Modified) und unter Berücksichtigung seiner aktuellen Einstellungen die Datei aus dem Cache zu liefern, oder ein GET abzusetzen.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
also zumindestens wenn ich
am 17.11.2007 - 19:10 Uhr
also zumindestens wenn ich mit firebug den ladevorgang anschaue steht (89 KB cache) da was die css dateien includieren muss
Das der Webserver ausliefert
am 17.11.2007 - 19:33 Uhr
Das der Webserver ausliefert ist mir klar. Ich habe mit Absicht "Drupal liefert aus" verwendet weil dies aus der Sicht des Servers schon zutrifft.
Wenn also die CSS Dateien lediglich zusammengefasst und groessenoptimiert ausgeliefert werden weiss ich nun schon mal mehr.
Das wiederum bedeutet, Drupal koennte diese zusammengefasste Datei auch als PHP Datei ausliefern. Wenn Drupal diese Datei als PHP ausliefern wuerde dann waere auch eine Komprimierung moeglich.
Das bedeutet, an dieser Stelle gibt es noch die Moeglichkeit einer Optimierung die momentan noch nicht realisiert wird.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Diese
am 17.11.2007 - 22:06 Uhr
Diese Optimierungsmöglichkeit gibt es beim Apache Webserver auch abseits von PHP&Co. so oder so und nennt sich mod_deflate (Apache 2.x), bzw. mod_gzip (Apache 1.3.x). Auch hier ist im Zweifelsfall zu prüfen, ob die dadurch erzeugte zusätzliche Serverlast und die höhere Latenz nicht zu einer langsameren Auslieferung führen.
Da CSS-Dateien eh einen statischen Charakter haben, ist hier tendenziell nur unterhalb der Wahrnehmungsschwelle Performance rauszuholen, denn nach dem ersten Zugriff cacht der Browser bis zur Änderung der CSS-Datei (oder wenn die Datei aus dem Cache geflogen ist). Da kann es eher was bringen, wenn - wie aktuell der Fall - nicht jedesmal erst PHP angeworfen werden muss (je nach Server-Konfiguration mehr (CGI/FCGI) oder weniger (mod_php) aufwändig) um dann doch nichts auszuliefern (weil ja der Browser cacht).
Wer also unbedingt komprimieren möchte, kann das auch jetzt schon tun. Unüberlegt einfach nur alles einzubauen und zu aktivieren, was nach Optimierung klingt, kann dagegen sogar kontraproduktiv sein.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay