it-swarm.dev

.htaccess, YSlow und "Cookie-freie Domains verwenden"

Eine der Messgrößen von YSlow ist die Verwendung von Domänen ohne Cookies zum Bereitstellen statischer Dateien.

"Wenn der Browser ein statisches Bild anfordert und Cookies mit der Anforderung Sendet, ignoriert der Server die Cookies. Diese Cookies sind nicht erforderlich. Netzwerkverkehr. Zur Problemumgehung Stellen Sie sicher, dass bei diesem Problem statische Komponenten mit Cookie-freien Anforderungen angefordert werden, indem Sie eine Unterdomäne erstellen und sie dort hosten. " - Yahoo YSlow

Ich interpretiere das so, dass ich Leistungszuwächse erleben könnte, wenn ich www.example.com/images nach static.example.com/images verschiebe.

Obwohl dies einfach zu bewerkstelligen ist, würde ich die praktische Fähigkeit meines Content-Management-Systems (Joomla/WordPress) verlieren, leicht auf diese Bilder zu verweisen und sie zu verlinken.

Ist es möglich, .htaccess zu verwenden, um alle Anforderungen für einen bestimmten Ordner in www.example.com in einen Ordner in static.example.com umzuleiten? Würde diese Methode das CMS auch dazu bringen, zu denken, die Bilder befänden sich an den Standardstandorten in ihrer eigenen Domäne?

16
Jason Pearce

Ist es möglich, .htaccess zu verwenden, um alle Anforderungen Für einen bestimmten Ordner auf www.example.com stattdessen in einen Ordner auf Static.example.com umzuleiten?

Möglich, aber kontraproduktiv: Der Client muss eine HTTP-Anforderung stellen, die Antwort für die Umleitung abrufen und dann eine weitere HTTP-Anforderung stellen.

Dies kostet viel mehr als nur eine Zeile der gespeicherten Cookie-Daten!

Würde diese Methode die CMS auch dazu bringen, zu denken, die Bilder Befänden sich an den Standardstandorten in ihrer eigenen Domäne?

Nein.

14
Quentin

Theoretisch könnten Sie eine virtuelle Domäne erstellen, die direkt auf den Ordner images verweist, z. B. images.example.com. Dann können Sie in Ihrem CMS (hoffentlich auf der Designebene) alle Pfade, die auf den Bilderordner verweisen, durch einen absoluten Pfad zur Unterdomäne ersetzen.

Obwohl dies leicht zu bewerkstelligen ist, würde ich Die praktische Fähigkeit in meinem Content-Management-System (Joomla/WordPress) verlieren, um auf Leicht zu verweisen und auf diese zu verweisen Bilder.

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

Beispielsweise haben Sie ein Plugin, das bei Eingabe von {dinamic_path-Pfad} in einem Artikel "static.example.com/images" an den angegebenen Pfad anfügt. Jedes Mal, wenn Sie den Serverpfad ändern müssen, ändern Sie einfach das Plugin. Für die Links, die bereits in der Datenbank vorhanden sind, können Sie versuchen, phpMyAdmin zu verwenden, um sie in dieser Struktur zu ändern.

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

4
GmonC

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

3
RichieHindle

Es würde die Anfrage umleiten, aber der Client würde seine Cookies trotzdem an den Server senden, so dass Sie wirklich nichts erreicht haben. Sie müssten direkt auf die Dateien von einer Domäne zugreifen, die keine Cookies speichert, damit sie funktioniert.

1
Ryan Kearney

Ich habe unten gearbeitet und Erfolg gehabt:

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

Dies bedeutet, dass, wenn Sie keine Bilder in Cookie-Informationen setzen. . Dann sind Bilder mit dem Server Cookie-frei.

1
Michał W

Sie möchten wirklich staticexample.com/images anstelle von static.example.com/images verwenden, damit Sie keine Cookies in der von Ihnen festgelegten Domäne example.com abholen. Wenn Sie nur Server-Images dieser Domäne mit einem einfachen Apache-Server oder etwas anderem verwenden, können Sie diesen Server so konfigurieren, dass er nicht einmal ein Sitzungscookie zurückgibt. 

Die Weiterleitungen sind eine sehr schlechte Idee. Cookies verursachen einige Leistungseinbußen. Round Trips auf den Server, z. B. eine Weiterleitung, führen jedoch zu einem viel schwerwiegenderen Leistungsproblem.

0