.htaccess, YSlow und „Cookie-freie Domains verwenden“

Lesezeit: 5 Minuten

Eine der Messgrößen von YSlow ist die Verwendung von cookiefreien Domains zur Bereitstellung statischer Dateien.

“Wenn der Browser ein statisches Bild anfordert und Cookies mit der Anfrage sendet, ignoriert der Server die Cookies. Diese Cookies sind unnötiger Netzwerkverkehr. Um dieses Problem zu umgehen, stellen Sie sicher, dass statische Komponenten mit cookiefreien Anfragen angefordert werden indem Sie eine Subdomain erstellen und sie dort hosten.” — Yahoo YSlow

Ich interpretiere das so, dass ich Leistungssteigerungen erleben könnte, wenn ich mich bewege www.example.com/images zu static.example.com/images.

Obwohl dies einfach ist, würde ich die praktische Möglichkeit in meinem Content-Management-System (Joomla/WordPress) verlieren, diese Bilder einfach zu referenzieren und zu verlinken.

Ist es möglich, .htaccess zu verwenden, um alle Anfragen für einen bestimmten Ordner weiterzuleiten? www.beispiel.com in einen Ordner ein static.example.com stattdessen? Würde diese Methode dem CMS auch vormachen, dass sich die Bilder an den Standardspeicherorten in seiner eigenen Domäne befinden?

  • Es scheint Konsens zu sein, dass zwar .htaccess verwendet werden könnte, um Anfragen für www.example.com/images an static.example.com/images umzuleiten; Die Arbeitsbelastung würde die Leistung verringern. Der Leistungsgewinn tritt nur ein, wenn auf die Dateien in einer einzigen Anfrage direkt von einer cookielosen Domäne zugegriffen wird. Eine andere Idee war, ein Plugin zu verwenden, das die Referenzen dynamisch erstellt. Ich danke Ihnen allen für die Beratung.

    – Jason Pearce

    17. September 2009 um 12:33 Uhr

Ist es möglich, .htaccess zu verwenden, um alle Anfragen für einen bestimmten Ordner auf www.example.com stattdessen auf einen Ordner auf static.example.com umzuleiten?

Möglich, aber kontraproduktiv – der Client müsste eine HTTP-Anfrage stellen, die Umleitungsantwort erhalten und dann eine weitere HTTP-Anfrage stellen.

Das kostet viel mehr als die Speicherung einer einzigen Zeile an Cookie-Daten!

Würde diese Methode dem CMS auch vormachen, dass sich die Bilder an den Standardspeicherorten in seiner eigenen Domäne befinden?

Nein.

Obwohl dies einfach ist, würde ich die praktische Möglichkeit in meinem Content-Management-System (Joomla/WordPress) verlieren, diese Bilder einfach zu referenzieren und zu verlinken.

Sie könnten versuchen, ein Plugin in Joomla zu erstellen, das diese Referenzen dynamisch erstellt.

Sie haben beispielsweise ein Plug-in, das bei Eingabe von {dinamic_path path} in einem Artikel „static.example.com/images“ an den bereitgestellten Pfad anhängt. Jedes Mal, wenn Sie den Serverpfad ändern müssen, ändern Sie einfach das Plugin. Für die Links, die sich bereits in der Datenbank befinden, können Sie versuchen, phpMyAdmin zu verwenden, um sie in dieser Struktur zu ändern.

Es verliert immer noch die WYSIWYG-Fähigkeit in TinyMCE, ist aber eine Alternative.

  • Danke für die Idee GmonC, kann aber meine Fähigkeiten übersteigen. Wird die große Plugin-Bibliothek sowohl Joomla als auch WordPress haben, hatte ich leicht gehofft, dass ich bereits etwas in dieser Richtung finden würde.

    – Jason Pearce

    17. September 2009 um 12:27 Uhr

  • Sie können das Erweiterungsverzeichnis auf der offiziellen Website von Joomla durchsuchen. Es gibt ein Plugin namens “DirectPHP”, Sie könnten ein 5-zeiliges PHP-Skript schreiben und es von einem Artikel aus aufrufen. Aber ich stimme zu, dass wir manchmal nur eine bereits funktionierende Lösung wollen: Da es sich um ein CMS handelt, sollte es einige Funktionen bereits implementiert haben. Nun, viel Glück mit den anderen bereitgestellten Lösungen!

    – GmonC

    17. September 2009 um 12:59 Uhr

  • ATG Dynamo ist ein kommerzielles (und sehr teures!) Webapp-Framework, das dies tut. Sie arbeiten mit Bildern in seinem CMS, und wenn Sie Inhalte bereitstellen, kann es die Bilder auf einen dedizierten Webserver übertragen und dann die richtigen URLs auf den Seiten generieren. Es ist eine nette Idee und sicherlich nicht allzu schwer umzusetzen, daher bin ich überrascht, dass es nicht weiter verbreitet ist.

    – Tom Anderson

    18. Juli 2010 um 18:05 Uhr

Theoretisch könnten Sie eine virtuelle Domain erstellen, die direkt auf den Bilderordner verweist, z. B. images.example.com. Dann könnten Sie in Ihrem CMS (hoffentlich auf der Themenebene) alle Pfade, die auf den Bilderordner verweisen, durch einen absoluten Pfad zur Subdomain ersetzen.

Die Umleitungen würden weitaus mehr Netzwerkverkehr verursachen, und weit mehr Latenz, als die Dinge einfach so zu lassen, wie sie sind.

Es würde die Anfrage umleiten, aber der Client würde immer noch seine Cookies an den Server senden, also haben Sie wirklich nichts erreicht. Sie müssten direkt von einer Domain aus auf die Dateien zugreifen, die keine Cookies speichert, damit es funktioniert.

Was Sie wirklich tun möchten, ist staticexample.com/images anstelle von static.example.com/images zu verwenden, damit Sie keine Cookies auf der Domain example.com abholen, die Sie möglicherweise festgelegt haben. Wenn Sie nur Server-Images von dieser Domäne mit einem einfachen Apache-Server oder etwas anderem tun, können Sie diesen Server so konfigurieren, dass er nicht einmal ein Sitzungscookie zurückgibt.

Die Umleitungen sind eine sehr schlechte Idee. Cookies verursachen einige Leistungseinbußen, aber Roundtrips zum Server, wie sie beispielsweise eine Umleitung verursachen würde, sind ein viel schwerwiegenderes Leistungsproblem.

Benutzeravatar von anuj arora
anuj arora

Ich habe Folgendes getan und Erfolg gehabt:

<FilesMatch "!\.(gif|jpe?g|png)$">
    php_value session.cookie_domain example.com
</FilesMatch>

Dies bedeutet, dass Sie keine Bilder in Cookie-Informationen einfügen. Dann sind Bilder serverseitig cookiefrei.

  • Dies tut nicht das, was der OP verlangt hat.

    – Tiago

    13. Dezember 2012 um 5:32 Uhr

  • Gibt es ein Äquivalent dazu für Nginx?

    – Vince Krönlein

    1. November 2015 um 11:20 Uhr

  • Zeigt 503 für meine Website an

    – Moxet Khan

    25. Februar 2016 um 10:05 Uhr

  • Wie setze ich den gleichen Wert für Nginx?

    – Himansu

    1. September 2020 um 17:50 Uhr

1403350cookie-check.htaccess, YSlow und „Cookie-freie Domains verwenden“

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy