owa_cookieパッケージには、HTTPのCookieをクライアントのブラウザに送信したり、ブラウザから取得したりするサブプログラムが含まれています。Cookieは、HTTPコール間で状態を保持するためにブラウザに送信される隠ぺいされた文字列です。状態は、クライアントのセッションが確立されている間のみ、または有効期限が指定されている場合は有効期限まで保持されます。システムの日付は、owa_customパッケージで指定されている情報に従って計算されます。
owa_cookie.cookieデータ型: Cookieの名前/値ペアを格納するデータ型です。
owa_cookie.getファンクション: 指定したCookieの値を取得します。
owa_cookie.get_allプロシージャ: Cookieのすべての名前/値ペアを取得します。
owa_cookie.removeプロシージャ: 指定したCookieを削除します。
owa_cookie.sendプロシージャ: HTTPヘッダーにSet-Cookie行を追加します。
注意: HTTPヘッダーはすべて英語で記述する必要があります。ヘッダーをデータベースから生成する場合は、ヘッダーが英語で作成されていることを確認してください。 |
HTTP標準ではCookie名のオーバーロードが認められている(つまり、同じCookie名に複数の値を関連付けることができる)ので、このデータ型は、特定のCookie名と関連付けられている値をすべて保持するPL/SQL RECORDです。
vc_arr型は、table of varchar2(4000) index by binary_integerです。
表3-1にowa_cookie.cookieデータ型のプロパティを示します。
指定したCookieに関連する値が返されます。値はowa_cookie.cookieデータ型で返されます。
表3-2にowa_cookie.getファンクションのプロパティを示します。
クライアントのブラウザからすべてのCookie名とその値が返されます。値は、ブラウザから送信された順序で示されます。
表3-3にowa_cookie.get_allプロシージャのプロパティを示します。
HTTPヘッダーのSet-Cookie行のexpiresフィールドを01-Jan-1990に設定することで、強制的にCookieを有効期限切れにします。このプロシージャは、HTTPヘッダーのコンテキスト内でコールされる必要があります。
表3-4にowa_cookie.removeプロシージャのプロパティを示します。
Cookieをクライアントに送信するSet-Cookie行を生成します。このプロシージャは、HTTPヘッダーのコンテキスト内で使用する必要があります。
表3-5にowa_cookie.sendプロシージャのプロパティを示します。
表3-5 owa_cookie.sendプロシージャ
プロパティ | 定義 |
---|---|
構文: |
owa_cookie.send( name in varchar2, value in varchar2, expires in date DEFAULT NULL, path in varchar2 DEFAULT NULL, domain in varchar2 DEFAULT NULL, secure in varchar2 DEFAULT NULL), httponly in varchar2 DEFAULT NULL), |
パラメータ: |
name: Cookieの名前。 value: Cookieの値。 expires: Cookieの有効期限が切れる日付。 path: pathフィールドの値。 domain: domainフィールドの値。 secure: このパラメータの値がNULLでない場合は、secureフィールドが行に追加される。 httponly: このパラメータの値がNULLでない場合は、HttpOnlyフィールドが行に追加される。 |
実行結果: |
Set-Cookie: <name>=<value> expires=<expires> path=<path> domain=<domain> secure HttpOnly |
注意: HTTPOnly Cookieの詳細は、http://msdn.microsoft.com/en-us/default.aspx で「Mitigating Cross-site Scripting With HTTP-only Cookies」の項を参照してください。 |