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?
24
Odpowiedzi:
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.com
lubstatic.domain.com
, ale jeśli ustawisz plik cookie,domain.com
któ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 zdomain.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.com
YouTube.ytimg.com
nigdy 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.
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).
źródło
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.com
myś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.com
gdzie 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źródło
www.example.net
nie będą wysyłanestatic.example.net
, ale pliki cookie zexample.net
będą. Rozwiązaniem jest przekierowanieexample.net
dowww.example.net
.Nie musisz określać, że nie chcesz używać plików cookie, po prostu ich nie używasz.
źródło