desenv-web-rp.com

Como configuro um domínio sem cookies?

Li que é melhor veicular conteúdo estático (css, javascript etc.) de um domínio ou subdomínio sem cookie para obter melhor desempenho. Presumo que um domínio não seja sem cookie por padrão. Como especifico que não quero usar cookies?

24
BenV

Quando coisas como YSlow e Velocidade da página dizem para você configurar domínios sem cookies, o que eles realmente querem dizer é veicular mídia de um domínio em que você não definirá nenhum, ou não definiu nenhum (globalmente) no passado. Às vezes, isso pode ser feito usando subdomínios, como media.domain.com ou static.domain.com, no entanto, se você definir um cookie em domain.com que se aplica ao domínio como um todo - um cookie para *.domain.com - esse cookie será enviado pelo cliente de volta ao servidor em todas as solicitações de todos os domínios associados a domain.com . Isso inclui todos os subdomínios.

O cookie global se torna um problema se você decidir renunciar ao uso de www. em seus domínios. Sem um subdomínio específico para o qual definir um cookie, todos os cookies devem ser definidos para *.domain.com para que funcionem.

Esse problema global de cookies é o motivo pelo qual você verá mídia estática veiculada em lugares como ytimg.com no YouTube. ytimg.com nunca exibirá conteúdo dinâmico que possa definir cookies, o que significa que nenhum cookie será enviado do cliente de volta ao servidor quando esses domínios fizerem parte de solicitações HTTP.

Se você tiver certeza de que nunca terá um cookie definido para *.domain.com, poderá usar um subdomínio para suas necessidades. Lembre-se de que, na maioria das vezes, se você se integrar a outro site ou serviço via Javascript, eles definirão cookies de domínio global.

No Apache (e tenho certeza de que todos os outros servidores da web) você pode definir ou desabilitar cabeçalhos antes que as solicitações sejam respondidas. Isso não corrigirá o problema do cliente enviar o cookie para o servidor, mas evitará que seus domínios enviem ou configurem cookies inicialmente. Apenas um problema se você veicular conteúdo não estático nos seus domínios sem cookies, o que anula a finalidade deles.

Header unset Cookie
Header unset Set-Cookie 

Isso desativará os cabeçalhos dos cookies existentes e da criação de novos cookies. Novamente, apenas um problema se você veicular conteúdo de seus domínios estáticos que possam definir um cookie. Coloque isso na configuração do seu site ou do host virtual (que, dependendo do seu sistema operacional, servidor e versão, pode ser qualquer número de lugares).

26
Bryson

Como especifico que não quero usar cookies?

Não se trata do que você precisa fazer para ter um domínio sem culinária - é mais sobre o que você precisa não fazer ... Para ter um domínio sem culinária, você precisa garantir que seu aplicativo em execução nesse domínio não defina nenhum cookie . Isso geralmente significa não ter logins, não ter o google analytics, não ter sessões - ou seja, apenas veicular mídia e nada mais. Obviamente, isso depende da sua configuração.

Um erro que cometi recentemente foi não fazer a distinção entre um domínio e um subdomínio. Comecei a veicular toda a minha mídia do http://media.example.com pensando que era um domínio sem culinária, mas na verdade é um domínio sub - e encontrei muitos dos meus cookies do site principal http://www.example.com onde estão sendo configurados no nível do domínio e, portanto, poluem meu subdomínio supostamente sem cozinhar. Aqui está o link para como eu resolvi esse problema: https://serverfault.com/questions/160210/nginx-serve-static-content-from-a-cookieless-domain

6
Tom

Como especifico que não quero usar cookies?

Você não precisa especificar que não deseja usar cookies, apenas não os usa.

3
delete