Ich habe gelesen, dass es für eine bessere Leistung am besten ist, statischen Inhalt (CSS, Javascript usw.) von einer Domain oder Subdomain ohne Cookies bereitzustellen. Ich gehe davon aus, dass eine Domain standardmäßig nicht ohne Cookies ist. Wie gebe ich an, dass ich keine Cookies verwenden möchte?
24
Antworten:
Wenn Sie von YSlow und Page Speed aufgefordert werden, Domänen ohne Cookies einzurichten, bedeutet dies, dass Medien aus einer Domäne bereitgestellt werden , für die Sie in der Vergangenheit keine oder (global) keine festgelegt haben. Manchmal kann dies durch die Verwendung von Unterdomänen erreicht werden, z. B.
media.domain.com
oderstatic.domain.com
wenn Sie jedoch ein Cookie festlegendomain.com
, das für die gesamte Domäne gilt - ein Cookie für*.domain.com
-, wird dieses Cookie vom Client wieder an den Server gesendet jede Anfrage für jede Domain mitdomain.com
. Dies umfasst alle Unterdomänen.Das globale Cookie wird zu einem Problem, wenn Sie auf die Verwendung
www.
in Ihren Domains verzichten. Ohne eine bestimmte Subdomain, für die ein Cookie gesetzt werden soll, müssen alle Cookies gesetzt sein*.domain.com
, damit sie funktionieren.In dieser globalen Cookie-Ausgabe werden statische Medien von Orten wie
ytimg.com
YouTube angezeigt.ytimg.com
Niemals werden dynamische Inhalte bereitgestellt, die Cookies setzen können. Dies bedeutet, dass niemals Cookies vom Client zurück an den Server gesendet werden, wenn diese Domänen Teil von HTTP-Anforderungen sind.Wenn Sie sicher sind, dass Sie niemals ein Cookie setzen werden, können Sie eine Subdomain
*.domain.com
für Ihre Bedürfnisse verwenden. Beachten Sie, dass bei der Integration mit einer anderen Website oder einem anderen Dienst über Javascript in den meisten Fällen globale Domain-Cookies gesetzt werden.In Apache (und ich bin sicher, jedem anderen Webserver) können Sie Header setzen oder entfernen, bevor Anfragen beantwortet werden. Dies behebt nicht das Problem, dass der Client das Cookie an Ihren Server sendet, verhindert jedoch, dass Ihre Domains jemals Cookies senden oder anfänglich setzen. Nur ein Problem, wenn Sie Inhalte bereitstellen, die nicht statisch sind und deren Zweck nicht erfüllt ist.
Dadurch werden die Header für vorhandene Cookies und zum Erstellen neuer Cookies deaktiviert. Auch dies ist nur dann ein Problem, wenn Sie Inhalte aus Ihren statischen Domänen bereitstellen, die möglicherweise ein Cookie setzen könnten. Platzieren Sie dies in Ihrer Site oder in der Konfiguration von virtualhost (je nach Betriebssystem, Server und Version können es beliebig viele Stellen sein).
quelle
Es geht nicht darum, was Sie tun müssen, um eine cookielose Domain zu haben, sondern darum, was Sie nicht tun müssen ... Um eine cookielose Domain zu haben, müssen Sie sicherstellen, dass Ihre Anwendung, die auf dieser Domain ausgeführt wird, keine Cookies setzt . Dies bedeutet normalerweise, dass keine Anmeldungen vorliegen, keine Google Analytics vorhanden sind, keine Sitzungen stattfinden, dh nur Medien und sonst nichts bereitgestellt werden. Dies hängt natürlich von Ihrem Setup ab.
Ein Fehler, den ich kürzlich gemacht habe, war, dass ich nicht zwischen einer Domain und einer Sub-Domain unterschied. Ich begann , alle von meinem Medien dienen
http://media.example.com
dachte , es eine cookieless Domäne war , aber tatsächlich ist es ein Unter -Domäne und ich fand viele meiner Cookies von der Haupt - Website ,http://www.example.com
wo auf einer Domain - Ebene zu sein Set und deshalb meine suppossedly cookieless Sub-Domain zu verschmutzen. Hier ist der Link, wie ich dieses Problem gelöst habe: /server/160210/nginx-serve-static-content-from-a-cookieless-domainquelle
www.example.net
werden nicht an gesendetstatic.example.net
, Cookies vonexample.net
jedoch. Die Lösung ist die Umleitungexample.net
zuwww.example.net
.Sie müssen nicht angeben, dass Sie keine Cookies verwenden möchten, Sie verwenden sie nur nicht.
quelle