Hallo,
ich steuere meine DS 107+ häufig remote über das Internet (Zum Thema Sicherheit habe ich auch noch einen Beitrag vorbereitet).
Dabei habe ich nicht immer die schnellste Internet-Verbindung und ich habe mich über den teilwese sehr zähen Seitenaufbau geärgert. Eine Analyse mit HTTPFox brachte mich dann auf eine Idee:
Trotz Browser-Cache wird jeder Request - egal ob dynamische cgi-Datei oder statische Files wie Bilder, CSS und JS-Files - an der DS auf Aktualität überprüft (HTTP 304). Das kosten Zeit!
Würde man diese statischen Files nicht jedesmal überprüfen und direkt aus dem Browser-Cache akzeptieren, veringert sich die Zeit bis zum Seitenaufbau deutlich. Dazu muss dem Browser nur mitgeteilt werden, wie lange einem Cache-Eintrag vertraut werden soll.
Dazu habe ich am Ende der Apache-Konfiguration /usr/syno/apache/conf/httpd.conf-sys folgenden Abschnitt eingefügt:
# Max. Alter für Bilder = 1 Jahr
<FilesMatch "\.(jpg|png|flv|gif|ico)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
# Max. Alter für Dokumente, JavaSkript und StyleSheets = 1 Woche
<FilesMatch "\.(pdf|swf|js|css)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# Dynamische Dateien nicht cachen
<FilesMatch "\.(html|cgi|php|htm)$">
Header set Expires "Thu, 01 Dec 2003 16:00:00 GMT"
Header set Cache-Control "no-store, no-cache, must-revalidate"
Header set Pragma "no-cache"
</FilesMatch>
Nun noch den System-Apache restarten und die Files werden - falls schon im Cache vorhanden - direkt aus dem Browser-Cache geladen, ohne die zeitraubende Aktualitätsprüfung
ich steuere meine DS 107+ häufig remote über das Internet (Zum Thema Sicherheit habe ich auch noch einen Beitrag vorbereitet).
Dabei habe ich nicht immer die schnellste Internet-Verbindung und ich habe mich über den teilwese sehr zähen Seitenaufbau geärgert. Eine Analyse mit HTTPFox brachte mich dann auf eine Idee:
Trotz Browser-Cache wird jeder Request - egal ob dynamische cgi-Datei oder statische Files wie Bilder, CSS und JS-Files - an der DS auf Aktualität überprüft (HTTP 304). Das kosten Zeit!
Würde man diese statischen Files nicht jedesmal überprüfen und direkt aus dem Browser-Cache akzeptieren, veringert sich die Zeit bis zum Seitenaufbau deutlich. Dazu muss dem Browser nur mitgeteilt werden, wie lange einem Cache-Eintrag vertraut werden soll.
Dazu habe ich am Ende der Apache-Konfiguration /usr/syno/apache/conf/httpd.conf-sys folgenden Abschnitt eingefügt:
# Max. Alter für Bilder = 1 Jahr
<FilesMatch "\.(jpg|png|flv|gif|ico)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
# Max. Alter für Dokumente, JavaSkript und StyleSheets = 1 Woche
<FilesMatch "\.(pdf|swf|js|css)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# Dynamische Dateien nicht cachen
<FilesMatch "\.(html|cgi|php|htm)$">
Header set Expires "Thu, 01 Dec 2003 16:00:00 GMT"
Header set Cache-Control "no-store, no-cache, must-revalidate"
Header set Pragma "no-cache"
</FilesMatch>
Nun noch den System-Apache restarten und die Files werden - falls schon im Cache vorhanden - direkt aus dem Browser-Cache geladen, ohne die zeitraubende Aktualitätsprüfung