## Tcl9.0.3/Tk9.0.3 Documentation > Tcl Commands > cookiejar

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    cookiejar — Tcl http 梱包 cookie jar 通信規約 の実装 Implementation of the Tcl http package cookie jar protocol
  構文 SYNOPSIS
  説明 DESCRIPTION
    ::http::cookiejar configure ?optionName? ?optionValue?
      -domainfile filename
      -domainlist url
      -domainrefresh intervalMilliseconds
      -loglevel level
      -offline flag
      -purgeold intervalMilliseconds
      -retain cookieCount
      -vacuumtrigger deletionCount
    ::http::cookiejar new ?filename?
  具現値手段 INSTANCE METHODS
    cookiejar destroy
    cookiejar forceLoadDomainData
    cookiejar getCookies protocol host path
    cookiejar policyAllow operation domain path
      delete
      session
      set
    cookiejar storeCookie options
    cookiejar lookup ?host? ?key?
  用例 EXAMPLES
  SEE ALSO
  KEYWORDS

### NAME

cookiejar — Tcl http 梱包 cookie jar 通信規約 の実装 Implementation of the Tcl http package cookie jar protocol

### 構文 SYNOPSIS

package require cookiejar ?0.1?
::http::cookiejar configure ?optionName? ?optionValue?
::http::cookiejar create name ?filename?
::http::cookiejar new ?filename?
cookiejar destroy
cookiejar forceLoadDomainData
cookiejar getCookies protocol host path
cookiejar storeCookie options
cookiejar lookup ?host? ?key?

### 説明 DESCRIPTION

cookiejar 梱包は SQLite 基礎データを使う http 梱包の cookie jar 通信規約の実装を提供する｡それは､一つの主命令 ::http::cookiejar を提供する､これは特定の HTTP session を管理する cookie jar を創生する為に具現化されるべき TclOO 級である｡ The cookiejar package provides an implementation of the http package's cookie jar protocol using an SQLite database. It provides one main command, ::http::cookiejar, which is a TclOO class that should be instantiated to create a cookie jar that manages a particular HTTP session.

基礎データ管理方針は ::http::cookiejar 級対象上の構成設定手段によって梱包水準で管理可能である: The database management policy can be controlled at the package level by the configure method on the ::http::cookiejar class object:

::http::cookiejar configure ?optionName? ?optionValue?
  もし､ optionName も optionValue も供給されない場合､これは Tcl 辞書として構成設定の複写を返す｡もし丁度 optionName が供給されると､名前の付いた指示項目の値が返される｡もし optionName と optionValue の両方が与えられると､名前の付けられた指示項目が与えられた値になる様変更される｡ If neither optionName nor optionValue are supplied, this returns a copy of the configuration as a Tcl dictionary. If just optionName is supplied, just the value of the named option is returned. If both optionName and optionValue are given, the named option is changed to be the given value.

  運営されている指示項目は: Supported options are:

  -domainfile filename
    頂上水準領域(譬えば､ .com や .co.jp)のリストの記述を伴うファイル(無為設定は cookiejar 梱包内部になる)｡この様な領域はその上に cookie の組を受容れてはならない｡註意すべきは､この様な領域のリストは安全性-感受的且つ変動性､且つ周期的に再取得される｡cookie jar は自身の領域リストの高速記憶域を運営する｡ A file (defaulting to within the cookiejar package) with a description of the list of top-level domains (e.g., .com or .co.jp). Such domains must not accept cookies set upon them. Note that the list of such domains is both security-sensitive and not constant and should be periodically refetched. Cookie jars maintain their own cache of the domain list.

  -domainlist url
    そこから頂上水準領域(譬えば､.com や .co.jp)のリストをそこから取って来る為の URL ｡この様な領域はその上への cookie 設定を受容れてはならない｡註意すべきは､この様な領域のリストは安全性-感受的且つ変動性､且つ周期的に再取得される｡cookie jar は自身の領域リストの高速記憶域を運営する｡ A URL to fetch the list of top-level domains (e.g., .com or .co.jp) from. Such domains must not accept cookies set upon them. Note that the list of such domains is both security-sensitive and not constant and should be periodically refetched. Cookie jars maintain their own cache of the domain list.

  -domainrefresh intervalMilliseconds
    新しい領域の為の -domainlist の確認の間の千分の一秒の数｡ The number of milliseconds between checks of the -domainlist for new domains.

  -loglevel level
    この梱包の日誌水準｡日誌水準は(冗長性を減ずる為) debug か info か warn か error の内の一つでなければならない｡ The logging level of this package. The logging level must be (in order of decreasing verbosity) one of debug, info, warn, or error.

  -offline flag
    cookie 管理譜がオフライン様式に置かれることを許容する｡オフライン様式では､領域のリストは -domainfile 指示項目で構成設定されたファイルから直接読まれ､-domainlist 指示項目は使用されない; 又 -domainrefresh 指示項目は効果的に無視させられる｡ Allows the cookie management engine to be placed into offline mode. In offline mode, the list of domains is read immediately from the file configured in the -domainfile option, and the -domainlist option is not used; it also makes the -domainrefresh option be effectively ignored.

  -purgeold intervalMilliseconds
    期限切れの cookie について基礎データの確認の間の千分の一秒の数; 期限切れのcookieは削除される｡ The number of milliseconds between checks of the database for expired cookies; expired cookies are deleted.

  -retain cookieCount
    基礎データ内に保持すべき cookieの最大数｡ The maximum number of cookies to retain in the database.

  -vacuumtrigger deletionCount
    基礎データが真空浄化に行く間の､接続 cookie 数の減少の勘定｡ A count of the number of persistent cookie deletions to go between vacuuming the database.

cookie jar 具現値はどれかの標準 TclOO 具現値生成手段(create か new)で作られる｡ Cookie jar instances may be made with any of the standard TclOO instance creation methods (create or new).

::http::cookiejar new ?filename?
  filename 引数が提供されると､SQLite 基礎データを含むファイルの名前であり､cookie jar によって運営されている持続性のcookieを含むことになる; もし ファイルが実在しないと基礎データが創生される｡もし､ filename が供給されないと､基礎データは記憶域の中に完全に保持され､その中の全ての cookies は､効果的に session cookie になることを強制される｡ If a filename argument is provided, it is the name of a file containing an SQLite database that will contain the persistent cookies maintained by the cookie jar; the database will be created if the file does not already exist. If filename is not supplied, the database will be held entirely within memory, which effectively forces all cookies within it to be session cookies.

#### 具現値手段 INSTANCE METHODS

具現値上で次の手段が運営されている: The following methods are supported on the instances:

cookiejar destroy
  これは標準的 TclOO 破壊手段である｡ディスクに書かれている SQLite 基礎データは消去しない｡破壊の時に cookie jar が http package によって使われていないことを確認するのは呼出者の責務である｡ This is the standard TclOO destruction method. It does not delete the SQLite database if it is written to disk. Callers are responsible for ensuring that the cookie jar is not in use by the http package at the time of destruction.

cookiejar forceLoadDomainData
  この手段は直ちに cookie jar に領域リストデータを積込(更に､高速域保管)ませる｡領域リストは可能なら -domainlist 構成設定された梱包水準から積込まれる､そうでないと､梱包水準で -domainlist 構成設定されて得られる｡ This method causes the cookie jar to immediately load (and cache) the domain list data. The domain list will be loaded from the -domainlist configured a the package level if that is enabled, and otherwise will be obtained from the -domainfile configured at the package level.

cookiejar getCookies protocol host path
  この手段は特定の HTTP 要求のための cookies を得る｡これは http cookie jar 通信規約を実装する｡ This method obtains the cookies for a particular HTTP request. This implements the http cookie jar protocol.

cookiejar policyAllow operation domain path
  この手段は､操作が領域と経路の為に遂行されることを許容するか否かの決定を得る為に storeCookie 手段によって呼出される｡これは､基礎データが更新される直前に確認されるが､後に組込み安全確認がされ､論理値を返す; もし値が偽値であると､操作は拒否され基礎データは修正されない｡運営されている操作は以下の通り: This method is called by the storeCookie method to get a decision on whether to allow operation to be performed for the domain and path. This is checked immediately before the database is updated but after the built-in security checks are done, and should return a boolean value; if the value is false, the operation is rejected and the database is not modified. The supported operations are:

  delete
    cookie を削除する為に領域が捜索される｡ The domain is seeking to delete a cookie.

  session
    session cookie を創生又は更新する為に領域が捜索される｡ The domain is seeking to create or update a session cookie.

  set
    強固な cookie (寿命が定義された)を創生又は更新する為に領域が捜索される｡ The domain is seeking to create or update a persistent cookie (with a defined lifetime).

  この手段の無為設定は真値を返すが､この級の下位級は独自の規則を強要するかもしれない｡ The default implementation of this method just returns true, but subclasses of this class may impose their own rules.

cookiejar storeCookie options
  この手段は特定の HTTP 応答からの一つの cookie を保存する｡安全確認に失敗したcookie は無視される｡これは http cookie jar 通信規約を実装する｡ This method stores a single cookie from a particular HTTP response. Cookies that fail security checks are ignored. This implements the http cookie jar protocol.

cookiejar lookup ?host? ?key?
  この手段は厳密な主人(又は領域)合致により cookie を見ている｡host も key も供給されない場合､cookie が保存される主人のリストが返される｡もし host (それは主人名 か領域名かもしれない)が供給されると､その host の為に保存される cookie keys のリストが返される｡もし host と key の両方が供給されると､その key の為の値が返される; その様な host や key が合致しない場合は不都合になる｡ This method looks a cookie by exact host (or domain) matching. If neither host nor key are supplied, the list of hosts for which a cookie is stored is returned. If just host (which may be a hostname or a domain name) is supplied, the list of cookie keys stored for that host is returned. If both host and key are supplied, the value for that key is returned; it is an error if no such host or key match exactly.

### 用例 EXAMPLES

最も簡単な cookie jar の使い方は､応用譜の開始時に永久に構成設定することである｡ The simplest way of using a cookie jar is to just permanently configure it at the start of the application.

    package require http
    package require cookiejar

    set cookiedb [file join [file home] cookiejar]
    http::config -cookiejar [http::cookiejar new $cookiedb]

    # 更なる cookie 使用の明確な段階の要求はない
    # No further explicit steps are required to use cookies
    set tok [http::geturl http://core.tcl-lang.org/]

cookie を使う為に特定の領域を許容する事は理由はおそらく､使用者のみが特定の host が sessions を創生し操作する､その方針を課す下位の級を創生することをできるようにすることを望むから｡ To only allow a particular domain to use cookies, perhaps because you only want to enable a particular host to create and manipulate sessions, create a subclass that imposes that policy.

    package require http
    package require cookiejar

    oo::class create MyCookieJar {
        superclass http::cookiejar

        method policyAllow {operation domain path} {
            return [expr {$domain eq "my.example.com"}]
        }
    }

    set cookiedb [file join [file home] cookiejar]
    http::configure -cookiejar [MyCookieJar new $cookiedb]

    # 更なる cookie 使用の明確な段階の要求はない
    # No further explicit steps are required to use cookies
    set tok [http::geturl http://core.tcl-lang.org/]

### SEE ALSO

http, oo::class, sqlite3

### KEYWORDS

cookie, internet, security policy, www
Copyright © 2014-2018 Donal K. Fellows.