Pergunta

Ponto-e-vírgula ;, a string Cookie: ou alguma outra string?

Foi útil?

Solução

Inspecionando cookies em uma solicitação HTTP

O cabeçalho Cookie: tem a seguinte sintaxe:

Cookie: <Name> = <Value> { ; <Name> = <Value> }

Portanto, os cookies individuais são separados por ponto e vírgula.

Definindo cookies em uma resposta HTTP

Por outro lado, ao definir um cookie na resposta, há um cookie para o cabeçalho Set-Cookie::

Set-Cookie: <Name> = <Value> [ ; expires = <Date>] [ ; path = <Path> ] [ ; domain = <Domain> ] // etc…

Para definir vários cookies, o cabeçalho Set-Cookie é repetido em uma resposta HTTP.


Observações:

  • Dê uma olhada aqui para um tutorial com exemplos e RFC 6265 HTTP State Management Mechanism para uma referência normativa que mostra os detalhes completos da sintaxe.
  • O agora obsoleto RFC 2965 definiu um par alternativo de cabeçalhos Cookie2 e Set-Cookie2 que foram abandonados .
  • As versões obsoletas do HTTP State Management Mechanism ( RFC 2109 e RFC 2965 ) forneceu uma maneira de juntar vários cabeçalhos Set-Cookie (ou Set-Cookie2) em um. No entanto, essa dobradura não é recomendada pela última especificação RFC 6265 .

Outras dicas

A resposta é um sinal de código genérico de vírgula.

Na seção 4.2.2 de RFC 2109 há esta especificação de cabeçalho ,

   set-cookie      =       "Set-Cookie:" cookies
   cookies         =       1#cookie

com a seguinte declaração Informalmente, o cabeçalho de resposta Set-Cookie compreende o token Set-Cookie :, seguido por uma lista separada por vírgulas de um ou mais cookies. (significado formal de Set-Cookie acima a notação é definida em RFC 733 na seção A. CONVENÇÕES NOTACIONAIS , ponto 5

Uma construção "#" é definida, semelhante a "*", como segue:

              <l>#<m>element

indicando pelo menos # e no máximo elementos <l>, cada um separado por uma ou mais vírgulas (",").

Sim, o RFC 2109 foi obsoleto pelo RFC 2965, que por sua vez tornou-se obsoleto pelo RFC 6265 .
Não, isso não muda nada neste contexto, como

  • a maioria dos servidores e clientes HTTP existentes são compatíveis com RFC 2109
  • RFC 6265 não proíbe dobradura <m>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top