Como configuro um domínio sem cookies?

24

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?

BenV
fonte
3
Esse tipo de coisa realmente não importa, a menos que você esteja servindo milhares de páginas por hora ou milhares de páginas por minuto.
"Apesar de fazer o possível para manter o tamanho dos cookies reduzido, nosso uso do Google Analytics coloca o tamanho médio dos cookies do usuário em torno de 1 kilobyte". Útil e relacionado - chrishateswriting.com/post/68794699432/small-things-add-up
mvark

Respostas:

26

Quando coisas como YSlow e Page Speed 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 configurará nenhum, ou não configurou (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 domain.comque 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 para todos os domínios associados domain.com. Isso inclui todos os subdomínios.

O cookie global se torna um problema se você decidir renunciar ao uso 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.comque funcionem.

Esse problema global de cookies é o motivo pelo qual você verá a mídia estática veiculada em lugares como o ytimg.comYouTube. ytimg.comnunca 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 *.domain.com, poderá usar um subdomínio para suas necessidades. Esteja ciente 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 definam 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 sistema operacional, servidor e versão, pode ser qualquer número de lugares).

Bryson
fonte
"Apenas um problema se você veicular conteúdo que não seja estático nos seus domínios sem cookies, o que anula a finalidade deles." exatamente por quê? Não há nada no conteúdo gerado dinamicamente que requer inerentemente cookies.
11
Eu não disse que servir o conteúdo dinâmico do seu domínio estático define algo inerentemente. Eu disse que os cookies seriam um problema se você exibisse conteúdo dinâmico que define cookies do seu domínio estático. O objetivo do domínio estático é veicular conteúdo que não requer interação: imagens, css, js etc. O conteúdo dinâmico - onde os cookies devem ser definidos - não deve ser tratado pelo domínio estático.
Bryson
6

Como especifico que não quero usar cookies?

Não é sobre o que você precisa fazer para ter um domínio sem culinária - é mais sobre o que você não precisa fazer ... Para ter um domínio sem culinária, é necessário garantir que o aplicativo em execução nesse domínio não defina cookies . 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 http://media.example.compensando que era um domínio sem culinária, mas na verdade é um subdomínio e encontrei muitos dos meus cookies no site principal, http://www.example.comsendo definidos no nível do domínio e, portanto, poluindo meu subdomínio supostamente sem culinária. Aqui está o link para como eu resolvi esse problema: /server/160210/nginx-serve-static-content-from-a-cookieless-domain

Tom
fonte
2
Os cookies de www.example.net não serão enviados para static.example.net, mas os cookies de example.netserão. A solução é redirecionar example.netpara www.example.net.
TRiG 28/10/10
3

Como especifico que não quero usar cookies?

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


fonte
3
Nem sempre é uma opção. As integrações de recursos Javascript de outros sites geralmente definem cookies globais para o domínio, quer você os queira ou não.
Bryson