ここでは、次の内容について説明します。
cookie は、クライアント側にデータを格納する手段の 1 つです。cookie は、ポータルサイトの個人向けカスタマイズ、ユーザ作業環境の追跡、および Web サイトのロギングなど、広範に使用されています。Web サイトで cookie を使用する企業カスタマの場合、Java Plug-in の cookie サポートは、Java アプレットや JavaBeansTM コンポーネントの配備を簡単にする上で重要な役割を果たします。
cookie サポートを使用することにより、アプレットまたは JavaBeans コンポーネントは、Web サーバから送信された cookie を Web サーバに返すことが可能になります。これにより、サーバにクライアントの状態に関する情報を提供できます。Java Plug-in は、バージョン 1.4 以降、双方向の cookie サポートを提供するようになりました。本書では、さまざまなブラウザ環境での cookie の動作について説明します。
Java Plug-in は、さまざまな Win32 プラットフォームおよび Solaris オペレーティング環境の Internet Explorer と Netscape Navigator ブラウザ、および Linux プラットフォームの Netscape Navigator ブラウザをサポートします。Java Plug-in は、ブラウザ API を介して cookie をサポートします。プラットフォームが異なるとブラウザ API の実装方法も異なるため、Java Plug-in の cookie サポートはプラットフォームごとに異なります。このため、各ブラウザが cookie をサポートする方法、および Java Plug-in が cookie 情報にアクセスおよび更新する方法を知っておくことは重要です。
URL 接続を使用して HTTP/HTTPS 要求を実行する場合、通常ブラウザは、cookie キャッシュおよびポリシーを検査して、HTTP/HTTPS 要求ヘッダと共に cookie を送信するかどうかを決定します。cookie を送信する場合、ブラウザはキャッシュから cookie を読み取り、HTTP/HTTPS 要求ヘッダの一部に追加します。
URL 接続を使用して HTTP/HTTPS 応答ヘッダを処理する場合、ブラウザはヘッダを検査して、cookie の設定が必要かどうかを判断します。ブラウザは、cookie ポリシーも検査して、アクションが許可されているかどうかを確認します。アクションが許可されている場合、ブラウザは HTTP/HTTPS 応答ヘッダから cookie を抽出して、cookie キャッシュに書き込みます。
Java Plug-in を使用して HTTP/HTTPS 要求を実行する場合、Java Plug-in は cookie も送信する必要があるかどうかをブラウザに問い合わせます。cookie を送信する場合、HTTP/HTTPS 要求には、ヘッダの一部として cookie が含まれます。cookie を送信しない場合、送信される HTTP/HTTPS 要求には cookie が添付されません。
HTTP/HTTPS 応答ヘッダから cookie を設定する場合、Java Plug-in はブラウザ API を使用して処理を実行します (Netscape Navigator 4 ブラウザを除く)。Netscape Navigator 4 ブラウザの場合、Java Plug-in がこの処理に利用できる API が存在しません。
Netscape Navigator 4 ブラウザには、別の制限も存在します。Netscape Navigator 4 ブラウザで Java Plug-in を使用する場合、コードベースがドキュメントベースと同じかそのサブディレクトリである場合にだけ、cookie サポートが有効になります。次の表に示す例を参照してください。
ドキュメントベース |
コードベース |
cookie サポート |
---|---|---|
http://host.com/my/ |
http://host.com/my/ |
有効 |
http://host.com/my/ |
http://host.com/my/page |
有効 |
http://host.com/my/page |
http://host.com/my/ |
無効 |
現時点で、HTTP/HTTPS 接続の確立が必要になると、Java Plug-in の cookie サポートが自動的に起動します。
Java Plug-in の cookie サポートを常に期待通りに動作させるために、以下の項目が推奨されています。
Internet Explorer ブラウザまたは Netscape 6 ブラウザを使用する。
Netscape 4 ブラウザを使用しなければならない場合、アプレットとの HTTP/HTTPS 接続で Web サーバが cookie を設定しないようにする。
(上記の推奨事項は、ブラウザおよび Web サーバ配備について制御が可能なイントラネット環境に当てはまります。)
cookie の動作に関する一般的な情報については、ブラウザのユーザーズガイドを参照してください。
Java Plug-in は、Internet Explorer ブラウザと Netscape Navigator ブラウザの両方でサポートされる cookie ポリシーをすべてサポートします。どちらのブラウザでも、cookie ポリシーの設定が可能です (詳細はブラウザのユーザーズガイドを参照)。 さまざまなオプションを設定できます。次にその一部を示します。
常に cookie を受け入れる
cookie の使用をすべて無効にする
cookie を受け入れる前にプロンプトまたは警告を表示する
送信元のサーバに送り返される cookie だけを受け入れる
ブラウザで cookie ポリシーが変更されると、Java Plug-in を使用した次回の HTTP/HTTPS 接続時に変更が有効になります。
Java Plug-in は、cookie キャッシュをサポートしません。その代わり、HTTP/HTTPS 接続が確立されるたびに、ブラウザに問い合わせます。このため、cookie の格納先はブラウザだけです。新しく HTTP/HTTPS 接続が確立されると、ブラウザ内の cookie に対する変更はすべて Java Plug-in に即座に反映されます。
Java Plug-in は、ブラウザ API を使用してディスクキャッシュをサポートします。HTTP/HTTPS 接続経由で .jar ファイルまたは .class ファイルがダウンロードされるたびに、ディスクキャッシュが起動します。ディスクキャッシュサポートを起動すると、ブラウザがファイル全体をダウンロードし、cookie を自動的に処理します。
Java Plug-in で HTTP/HTTPS 接続が確立されると cookie が送信されますが、たとえ信頼できるコードであったとしても、アプレットや Bean はこの情報にはアクセスしません。 さらに、cookie は、送信元のホストおよびドメインに送り返されるだけです。