Next: rfc.ftp - FTPクライアント, Previous: rfc.base64 - Base64エンコーディング, Up: ライブラリモジュール - ユーティリティ [Contents][Index]
rfc.cookie - HTTPクッキーRFC 6265で定義されている「クッキー」情報を パースしたり構築したりするための手続きを定義しています。
{rfc.cookie} リクエスト・ヘッダの Cookie の値のクッキー文字列 string を パースします。通常、CGI プログラムでは、同じ情報は環境変数 HTTP_COOKIE を通して利用できます。
リクエスト・ヘッダ Cookie2 を通してクッキーのバージョンが分かる
場合は、version へ整数のバージョンとして渡されなければなりません。
そうでなければ、parse-cookie-string は string からバージョンを
取り出します。
結果は以下のフォーマットを持ちます。
((<name> <value> [:path <path>] [:domain <domain>] [:port <port>]) …)
<name> は属性名で、<value> は対応する値です。
属性が値を持たない場合、<value> は #f になります。
(属性が NULL 値を持つ場合は、"" となることに注意。)
属性がパスやドメイン、ポート番号のオプションを持つ場合は、
キーワード-値のペアの形式で与えられます。
註: 特定のクッキーの値を簡単に取り出すには
rfc822-header-refが使えます (rfc.822 - RFC822メッセージ形式参照)。
{rfc.cookie}
与えられたクッキーの仕様のリストから、Set-cookie2 か
Set-cookie ヘッダに適切なクッキー文字列を作ります。
オプションの version 引数は、互換性のために受容されますが無視されます。
クッキーの仕様は以下のフォーマットを持ちます。
(<name> <value> [:expires <data/time>] [:max-age <age>]
[:domain <domain>] [:path <path>]
[:secure <boolean>] [:http-only <boolean>]
<name>文字列。クッキーの名前。
<value>クッキーの値。文字列か、値が必要なければ #f 。
<domain> <path>文字列。
<boolean>真偽値。
<age>非負の正確な整数。
<date/time>整数(エポックからの秒数)か、Netscape のクッキー仕様に従うフォーマットされた
日付文字列か、<time>もしくは<date>オブジェクト
(時間,および srfi.19 - 時間のデータ型と手続き参照)。
属性の指定は順不同です。属性値は適切にクォートされます。
互換性のために、古い規格(RFC2965, RFC2109, 古のNetscape cookie specificaiton)
で指定されていたいくつかの属性も認識され出力に含められます
(comment, comment-url, discard, port,
version)。が、新規のコードではこれらの属性を使うべきではありません。
戻り値はそれぞれのクッキー文字列のリストです。(Set-cookie を使う)
古いスタイルのプロトコルでは、それぞれを独立したヘッダとして送らなければ
なりません。(Set-cookie2 ヘッダを使う)新しいプロトコルでは、
それらをカンマで繋ぎ、一度に送ることができます。詳細は RFC6265 を見て下さい。
例:
(construct-cookie-string
`(("name" "foo" :domain "foo.com" :path "/" :max-age 86400)))
⇒ ("name=foo;Domain=foo.com;Path=/;Max-age=86400")
Next: rfc.ftp - FTPクライアント, Previous: rfc.base64 - Base64エンコーディング, Up: ライブラリモジュール - ユーティリティ [Contents][Index]