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?
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?
Respostas:
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.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 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.com
que funcionem.
Esse problema global de cookies é o motivo pelo qual você verá a mídia estática veiculada em lugares como o ytimg.com
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 *.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).
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.com
pensando 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.com
sendo 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
www.example.net
não serão enviados para static.example.net
, mas os cookies de example.net
serão. A solução é redirecionar example.net
para www.example.net
.
Como especifico que não quero usar cookies?
Você não precisa especificar que não deseja usar cookies, apenas não os usa.