Qual é a diferença entre local.test.com
e .local.test.com
? A captura de tela é do Chrome.
Qual é a diferença entre local.test.com
e .local.test.com
? A captura de tela é do Chrome.
Respostas:
local.test.com
será usado para o domínio, enquanto .local.test.com
será usado para subdomínios também.
local.test.com
, não se aplica a x.local.test.com
, mas .local.test.com
se aplica a local.test.com
e a x.local.test.com
?
O ponto inicial significa que o cookie também é válido para subdomínios; no entanto, as especificações HTTP recentes (RFC 6265) mudaram essa regra, de modo que os navegadores modernos não devem se preocupar com o ponto inicial. O ponto pode ser necessário para navegadores antigos que implementam o RFC 2109 obsoleto.
Por exemplo, se o valor do atributo Domain for "example.com", o agente do usuário incluirá o cookie no cabeçalho do Cookie ao fazer solicitações HTTP para example.com, www.example.com e www.corp.example. com. (Observe que um% x2E (".") À esquerda, se presente, é ignorado mesmo que esse caractere não seja permitido, mas um% x2E (".") À esquerda, se presente, fará com que o agente do usuário ignore o atributo. )
Do artigo O guia definitivo para domínios de cookies e por que um prefixo www torna seu site mais seguro :
Conclusão
Embora as definições sejam um pouco diferentes, podemos simplificá-las para qualquer uma dessas implementações como:
Outras observações valiosas:
Quando nenhum domínio é definido no cookie, o cookie deve corresponder apenas ao nome de host exato da solicitação. [NOTA: isso é diferente de retornar um Set-Cookie com um domínio sem um ponto!] Sem subdomínios, sem correspondências parciais. Isso significa simplesmente não incluir o atributo de domínio - não é válido definir um atributo de domínio vazio. Infelizmente, o Internet Explorer parece tratar isso como o nome do host junto com quaisquer subdomínios .
Ao definir um domínio no cookie, a escolha segura é que ele seja precedido por um ponto, como .erik.io. O cookie corresponderá a todos os subdomínios.
Definir um domínio de cookie sem um ponto precedente, como erik.io, é inválido nas implementações RFC 2109 e produzirá o mesmo comportamento de um ponto anterior em outras implementações. Não há como restringir um cookie a um domínio definido explicitamente específico, sem a inclusão de subdomínios.
Em todos os RFCs, um domínio de cookie especificado deve corresponder ao nome do host atual, por correspondência normal. Definir um cookie para www.erik.io em uma resposta de erik.io não é válido, pois um cookie com o domínio www.erik.io não corresponde a erik.io, sendo o primeiro mais específico.
No RFC 6265, os domínios são explicitamente em letras minúsculas ao analisar o cabeçalho Set-Cookie.
O ponto inicial em ".local.test.com" é exatamente como o Chrome visualiza cookies com um "Domain = local.test.com" definido (ou um "Domain = .local.test.com", que é o mesmo).
As definições de Set-Cookie sem "Domain = something" exibem o domínio (= host) sem um ponto inicial.
Portanto, o ponto inicial no cromo não reflete se um ponto inicial foi ou não usado no servidor, mas se esse cookie tinha ou não um "Domínio = algo" em sua definição do servidor. (E se tivesse, o cookie também será enviado para subdomínios).
Pelo menos é isso que meus testes mostram. O Chrome deve tornar isso mais fácil de ler, por exemplo, visualizar a string exata que definiu o cookie e quando ele foi recebido.