Jak skonfigurować domenę bez plików cookie?

24

Czytałem, że najlepiej jest podawać zawartość statyczną (css, javascript itp.) Z domeny lub subdomeny bez plików cookie, aby uzyskać lepszą wydajność. Zakładam, że domena nie jest domyślnie pozbawiona plików cookie. Jak mogę określić, że nie chcę używać plików cookie?

BenV
źródło
3
Tego rodzaju rzeczy naprawdę nie mają znaczenia, chyba że podajesz tysiące stron na godzinę lub tysiące stron na minutę.
„Pomimo dołożenia wszelkich starań, aby zmniejszyć rozmiar plików cookie, korzystanie z Google Analytics powoduje, że średni rozmiar pliku cookie użytkownika wynosi około 1 kilobajta”. Przydatne i powiązane - chrishateswriting.com/post/68794699432/small-things-add-up
mvark

Odpowiedzi:

26

Gdy rzeczy takie jak YSlow i Page Speed nakazują konfigurowanie domen bez plików cookie, to tak naprawdę oznaczają serwery z domeny, w której nie będziesz ich ustawiać lub nie ustawiłeś żadnej (globalnie) w przeszłości. Czasami można to osiągnąć za pomocą subdomen, takich jak media.domain.comlub static.domain.com, ale jeśli ustawisz plik cookie, domain.comktóry dotyczy całej domeny - plik cookie dla *.domain.com- wtedy ten plik cookie zostanie odesłany przez klienta z powrotem na serwer w dniu każde żądanie dla każdej domeny powiązanej z domain.com. Dotyczy to wszystkich subdomen.

Globalny plik cookie staje się problemem, jeśli zdecydujesz się zrezygnować z używania www.w swoich domenach. Bez określonej subdomeny, dla której należy ustawić plik cookie, wszystkie pliki cookie muszą zostać ustawione *.domain.com, aby mogły działać.

Ten globalny problem z plikami cookie powoduje wyświetlanie mediów statycznych z miejsc takich jak ytimg.comYouTube. ytimg.comnigdy nie będzie wyświetlać treści dynamicznych, które mogą ustawiać pliki cookie, co oznacza, że ​​żaden plik cookie nie zostanie wysłany od klienta z powrotem do serwera, gdy domeny te będą częścią żądań HTTP.

Jeśli masz pewność, że nigdy nie będziesz mieć ustawionego pliku cookie *.domain.com, możesz użyć subdomeny do własnych potrzeb. Pamiętaj, że przez większość czasu, jeśli integrujesz się z inną witryną lub usługą za pomocą Javascript, będą one ustawiać globalne pliki cookie domeny.

W Apache (i jestem pewien, że co drugi serwer WWW) możesz ustawić lub usunąć nagłówki przed odpowiedzią na żądania. To nie rozwiąże problemu, że klient wysyła ciasteczko na twój serwer, ale powstrzyma twoje domeny przed wysyłaniem lub początkowym ustawianiem ciasteczek. Problem występuje tylko wtedy, gdy podajesz treści, które nie są nieruchome z domen bez plików cookie, co nie spełnia ich celu.

Header unset Cookie
Header unset Set-Cookie 

Spowoduje to rozbrojenie nagłówków dla istniejących plików cookie i tworzenia nowych plików cookie. Znowu problem występuje tylko wtedy, gdy podajesz treści ze swoich domen statycznych, które mogą potencjalnie ustawić plik cookie. Umieść to w konfiguracji witryny lub hosta wirtualnego (w zależności od systemu operacyjnego, serwera i wersji może to być dowolna liczba miejsc).

Bryson
źródło
„Problem występuje tylko wtedy, gdy podajesz treści, które nie są statyczne z domen bez plików cookie, co nie pozwala na ich realizację”. - dlaczego dokładnie? Nie ma nic w dynamicznie generowanych treściach, które z natury wymagają plików cookie.
1
Nie powiedziałem, że serwowanie treści dynamicznych z Twojej domeny statycznej z natury rzeczy cokolwiek ustawia. Powiedziałem, że pliki cookie mogą stanowić problem, jeśli udostępniasz dynamiczne treści ustawiające pliki cookie z Twojej domeny statycznej. Celem domeny statycznej jest dostarczanie treści, które nie wymagają interakcji: obrazy, css, js itp. Treści dynamiczne - w których powinny być ustawione pliki cookie - nie powinny być obsługiwane przez domenę statyczną.
Bryson
6

Jak mogę określić, że nie chcę używać plików cookie?

Nie chodzi o to, co trzeba zrobić, aby mieć domenę plików cookie - jest to więcej o tym, co trzeba, aby nie zrobić ... Aby mieć domenę plików cookie, musisz upewnić się, że aplikacja działa na tej domenie nie ustala żadnych ciasteczek . Zazwyczaj oznacza to brak logowania, brak analizy Google, sesje - czyli po prostu podawanie multimediów i nic więcej. Oczywiście zależy to od konfiguracji.

Jednym błędem, który popełniłem ostatnio, było to, że nie wprowadziłem rozróżnienia między domeną a subdomeną. Zacząłem obsługiwać wszystkie moje media, http://media.example.commyśląc, że jest to domena bez plików cookie, ale tak naprawdę jest to subdomena i znalazłem wiele moich plików cookie z głównej witryny, http://www.example.comgdzie są one ustawione na poziomie domeny, a zatem zanieczyszczają moją rzekomo subdomenę bez plików cookie. Oto link do rozwiązania tego problemu: /server/160210/nginx-serve-static-content-from-a-cookieless-domain

Tomek
źródło
2
Pliki cookie z www.example.net nie będą wysyłane static.example.net, ale pliki cookie z example.netbędą. Rozwiązaniem jest przekierowanie example.netdo www.example.net.
TRiG
3

Jak mogę określić, że nie chcę używać plików cookie?

Nie musisz określać, że nie chcesz używać plików cookie, po prostu ich nie używasz.


źródło
3
Nie zawsze jest to opcja. Integracja funkcji Javascript z innych stron zazwyczaj ustawia globalne pliki cookie dla domeny, niezależnie od tego, czy chcesz, czy nie.
Bryson