Wie richte ich eine Domain ohne Cookies ein?

24

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?

BenV
quelle
3
Diese Art von Dingen spielt keine Rolle, es sei denn, Sie liefern Tausende von Seiten pro Stunde oder Tausende von Seiten pro Minute.
"Obwohl wir unser Bestes geben, um die Cookie-Größe gering zu halten, liegt die Cookie-Größe eines durchschnittlichen Nutzers bei 1 Kilobyte." Nützlich und verwandt - chrishateswriting.com/post/68794699432/small-things-add-up
MVARK

Antworten:

26

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.comoder static.domain.comwenn Sie jedoch ein Cookie festlegen domain.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 mit domain.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.comYouTube angezeigt. ytimg.comNiemals 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.comfü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.

Header unset Cookie
Header unset Set-Cookie 

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).

Bryson
quelle
"Nur ein Problem, wenn Sie Inhalte bereitstellen, die nicht statisch sind und deren Zweck nicht erfüllt ist." - warum genau? Es gibt nichts an dynamisch generierten Inhalten, das von Natur aus Cookies erfordert.
1
Ich habe nicht gesagt, dass das Bereitstellen des dynamischen Inhalts aus Ihrer statischen Domain von Natur aus etwas bewirkt. Ich sagte, dass Cookies ein Problem darstellen würden, wenn Sie dynamischen Inhalt bereitstellen, der Cookies von Ihrer statischen Domain setzt. Der Zweck der statischen Domain ist die Bereitstellung von Inhalten, für die keine Interaktion erforderlich ist: Bilder, CSS, Js usw. Dynamische Inhalte - in denen Ihre Cookies gesetzt werden sollten - sollten nicht von der statischen Domain verarbeitet werden.
Bryson
6

Wie gebe ich an, dass ich keine Cookies verwenden möchte?

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.comdachte , 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.comwo 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-domain

Tom
quelle
2
Cookies von www.example.net werden nicht an gesendet static.example.net, Cookies von example.netjedoch. Die Lösung ist die Umleitung example.netzu www.example.net.
TRiG
3

Wie gebe ich an, dass ich keine Cookies verwenden möchte?

Sie müssen nicht angeben, dass Sie keine Cookies verwenden möchten, Sie verwenden sie nur nicht.


quelle
3
Nicht immer eine Option. Durch die Integration von Javascript-Funktionen von anderen Websites werden in der Regel globale Cookies für die Domain gesetzt, unabhängig davon, ob Sie dies wünschen oder nicht.
Bryson