20

セミコロン;Cookie:文字列、またはその他の文字列?

4

2 に答える 2

36

HTTPリクエストのCookieを検査する

ヘッダーのCookie:構文は次のとおりです。

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

したがって、個々のCookieはセミコロンとスペースで区切られます

HTTP応答でのCookieの設定

一方、応答にCookieを設定する場合、Set-Cookie:ヘッダーごとに1つのCookieがあります。

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

複数のCookieを設定するSet-Cookieには、HTTP応答でヘッダーが繰り返されます。


ノート:

  • 例を含むチュートリアルと、構文の完全な詳細を示す規範的なリファレンスについては、RFC6265HTTP状態管理メカニズムを参照しください
  • 現在廃止されているRFC2965は、ヘッダーの代替ペアを定義し、Cookie2それらSet-Cookie2は放棄されました。
  • 廃止されたバージョンのHTTP状態管理メカニズムRFC2109およびRFC2965)は、複数のSet-Cookie(またはSet-Cookie2)ヘッダーを1つに折りたたむ方法を提供しました。ただし、この折りたたみは、最新のRFC6265仕様では推奨されていません。
于 2011-01-30T15:10:39.220 に答える
1

答えはコンマ,記号です。

RFC 2109のセクション4.2.2には、このSet-Cookieヘッダーの仕様があります

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

非公式には、Set-Cookie応答ヘッダーはトークンSet-Cookie:と、それに続く1つ以上のCookieのコンマ区切りリストで構成されます。(上記の表記法での正式な意味は、 RFC 733のセクションA#で定義されています。表記法、ポイント5

「*」と同様に、構成「#」が次のように定義されます。

              <l>#<m>element

それぞれが1つ以上のコンマ( "、")で区切られた、少なくとも要素<l>と最大要素を示します。<m>

はい、RFC2109はRFC2965によって廃止され、RFC2965はRFC6265によって廃止されました。
いいえ、このコンテキストでは何も変更されません。

  • ほとんどの既存のHTTPサーバーとクライアントはRFC2109をサポートしています
  • RFC6265は折りたたみを禁止していませSet-Cookie
于 2011-11-24T22:19:17.043 に答える