Toda solicitação da Web envia os cookies do navegador?
Não estou falando de visualizações de página, mas de uma solicitação de imagem, .js
arquivo etc.
Atualizar Se uma página da web tiver 50 elementos, ou seja, 50 solicitações. Por que enviar os mesmos cookies para cada solicitação, ele não armazena em cache ou sabe que já o possui?
Respostas:
Sim, desde que a URL solicitada esteja dentro do mesmo domínio e caminho definido no cookie (e todas as outras restrições - seguras, normais, não expiradas, etc.) permaneçam, o cookie será enviado para todas as solicitações.
fonte
Como já foi dito, se as restrições de host, caminho etc. do cookie forem atendidas, ele será enviado 50 vezes.
Mas você também perguntou o porquê: porque os cookies são um recurso HTTP e o HTTP é sem estado. O HTTP foi projetado para funcionar sem que o servidor armazene qualquer estado entre solicitações.
De fato, o servidor não possui uma maneira sólida de reconhecer qual usuário está enviando uma determinada solicitação; pode haver mil usuários atrás de um único proxy da web (e, portanto, endereço IP). Se os cookies não fossem enviados a cada solicitação, o servidor não teria como saber qual usuário está solicitando qualquer recurso.
Por fim, o navegador não tem idéia se o servidor precisa ou não dos cookies, apenas sabe que o servidor o instruiu a enviar o cookie para qualquer solicitação ao foo.com, e assim o faz. Às vezes, as imagens precisam delas (por exemplo, geradas dinamicamente por usuário), às vezes não, mas o navegador não sabe.
fonte
Sim. Toda solicitação envia os cookies que pertencem ao mesmo domínio. Eles não são armazenados em cache porque o HTTP é sem estado, o que significa que toda solicitação deve ser suficiente para o servidor descobrir o que fazer com ela. Digamos que você tenha imagens acessíveis apenas por determinados usuários; você deve enviar seu cookie de autenticação com cada uma dessas 50 solicitações, para que o servidor saiba que é você e não outra pessoa ou um convidado entre o conjunto de solicitações que está recebendo.
Dito isto, os cookies podem não ser enviados, dadas outras restrições mencionadas nas outras respostas, como configuração HTTPS, caminho ou domínio. Especialmente lá, uma coisa importante a ser observada: os cookies não são compartilhados entre domínios. Isso ajuda a reduzir o tamanho das chamadas HTTP para arquivos estáticos, como as imagens e scripts mencionados.
Exemplo: você tem 4 cookies em
www.stackoverflow.com
; se você solicitarwww.stackoverflow.com/images/logo.png
, todos esses 4 cookies serão enviados.No entanto, se você solicitar
stackoverflow.com/images/logo.png
(observe a alteração do subdomínio) ouimages.stackoverflow.com/logo.png
, esses 4 cookies não estarão presentes - mas talvez aqueles relacionados a esses domínios estejam.Você pode ler mais sobre cookies e imagens solicitando, por exemplo, nesta postagem no blog do StackOverflow .
fonte
Não. Nem toda solicitação envia os cookies. Depende da configuração do cookie e da conexão cliente-servidor.
Por exemplo, se a
secure
opção do seu cookie estiver definida comotrue
, ele deverá ser transmitido por uma conexão HTTPS segura. Significa que quando você vê o site com protocolo HTTP, esses cookies não serão enviados pelos navegadores, pois o sinalizador seguro é verdadeiro.fonte
O cookie possui uma propriedade "path". Se "caminho = /", a resposta for Sim.
fonte
/app/
ou semelhantes - ele manteria a portabilidade sem a necessidade de subdomínios separados para eliminar a sobrecarga redundante. Ou você pode abandonar o agora inútil Google Analytics para começar. Eu tenho visto cabeçalhos de biscoito há tanto tempo que me pergunto se minha avó os estava tricotando.3 anos se passaram
Há outra razão pela qual um navegador não envia cookies. Você pode adicionar um
crossOrigin
atributo à sua<script>
tag e o valor para"anonymous"
. Isso impedirá que os cookies sejam enviados ao servidor de destino. Em 99,9% do tempo, seus javascripts são arquivos estáticos e você não gera esse código js com base nos cookies da solicitação. Se você possui 1 KB de cookies e possui 200 recursos em sua página, seu usuário está enviando 200 KB e isso pode levar algum tempo no 3G e ter efeito nulo na página de resultados. Visite o atributo HTML: crossorigin para referência.fonte
Eu sei que este é um tópico antigo. Mas acabei de notar que a maioria dos navegadores não envia cookies para um domínio se você adicionar um ponto à direita. Por exemplo
http://example.com.
, não receberá cookies definidos para.example.com
. O Apache, por outro lado, os trata como o mesmo host. Acho isso útil para tornar o rastreamento entre domínios mais difícil para os recursos externos que incluí, mas você também pode usá-lo por motivos de desempenho. Observe que isso freia a validação dehttps
certificados. Fiz alguns testes usando os navegadores e meus próprios dispositivos. O hack funciona em quase todos os navegadores, exceto no safari (móvel e desktop), que incluirá cookies na solicitação.fonte
Resposta curta é Sim. As linhas abaixo são da documentação JS
Os cookies já foram usados para armazenamento geral do lado do cliente. Embora isso fosse legítimo quando eram a única maneira de armazenar dados no cliente, agora é recomendável usar APIs de armazenamento modernas. Os cookies são enviados a cada solicitação, para piorar o desempenho (especialmente para conexões de dados móveis).
fonte