- すべての実装されたインタフェース:
- Cloneable
HTTP Cookieの仕様には次の3つがあります。
Netscapeドラフト
RFC 2109 - http://www.ietf.org/rfc/rfc2109.txt
RFC 2965 - http://www.ietf.org/rfc/rfc2965.txt
HttpCookieクラスは、これら3つの形式の構文をすべて受け付けることができます。
- 導入されたバージョン:
- 1.6
- 外部仕様
- 
コンストラクタのサマリーコンストラクタ
- 
メソッドのサマリー修飾子と型メソッド説明clone()このオブジェクトのコピーを作成して返します。static booleandomainMatches(String domain, String host) あるホスト名があるドメインに含まれるかどうかをチェックするためのユーティリティ・メソッド。boolean2つのHTTP Cookieが等しいかどうかを判定します。このCookieの目的を説明するコメントを返します。Cookieにコメントがない場合は、nullを返します。このCookieの目的を説明するコメントURLを返します。このCookieにコメントURLがない場合はnullを返します。booleanCookieの破棄属性を返しますこのCookieに設定されたドメイン名を返します。longCookieの最長有効期間を秒数で返します。getName()Cookieの名前を返します。getPath()ブラウザがこのCookieを返す先となる、サーバー上のパスを返します。Cookieのポート・リスト属性を返しますbooleanこのcookieを送信する場合はtrueをセキュア・プロトコルに制限し、プロトコルを使用して送信できる場合はfalseを返します。getValue()Cookieの値を返します。intこのCookieが準拠するプロトコルのバージョンを返します。booleanこのHTTP Cookieの有効期限が切れているかどうかを報告します。inthashCode()このHTTP Cookieのハッシュ・コードを返します。booleanこのCookieがHttpOnly属性を含む場合はtrueを返します。static List<HttpCookie> set-cookieまたはset-cookie2ヘッダー文字列からCookieを構築します。voidsetComment(String purpose) Cookieの目的を説明するコメントを指定します。voidsetCommentURL(String purpose) Cookieの目的を説明するコメントURLを指定します。voidsetDiscard(boolean discard) ユーザー・エージェントがCookieを無条件に破棄すべきかどうかを指定します。voidこのCookieが提示されるドメインを指定します。voidsetHttpOnly(boolean httpOnly) CookieをHTTP Onlyとみなすべきかどうかを示します。voidsetMaxAge(long expiry) Cookieの最長有効期間を秒数で設定します。voidクライアントがCookieを返す必要のあるCookieのパスを指定します。voidsetPortlist(String ports) Cookieのポート・リストを指定します。このリストは、CookieをCookieヘッダー内に収めて送り返す際に使用できるポート(複数可)を制約します。voidsetSecure(boolean flag) CookieをHTTPSやSSLなどのセキュアなプロトコルのみを使用して送信するべきかどうかを示します。voidCookieの作成後に、Cookieに新しい値を割り当てます。voidsetVersion(int v) このCookieが準拠するCookieプロトコルのバージョンを設定します。toString()このCookieのCookieヘッダー文字列表現を構築します。その形式は、対応するCookie仕様で定義されているものですが、先頭の「Cookie」トークンは付きません。
- 
コンストラクタの詳細- 
HttpCookie指定された名前と値を持つCookieを構築します。名前はRFC 2965に準拠している必要があります。 つまり、ASCIIの英数文字のみを含み、カンマ、セミコロン、空白を含むことはできず、$文字が先頭にあってはいけません。 Cookieの作成後に名前を変更することはできません。 値には特に制限はありません。 その値は通常、サーバーにとってのみ意味があります。 Cookieの値は、作成後に setValueメソッドを使用して変更できます。特に指定しないかぎり、CookieはRFC 2965のCookie仕様に従って作成されます。 バージョンを変更するには setVersionメソッドを使用します。- パラメータ:
- name−Cookieの名前を指定する- String
- value−Cookieの値を指定する- String
- スロー:
- IllegalArgumentException- Cookie名に不正な文字が含まれている場合
- NullPointerException-- nameが- nullである場合
- 関連項目:
 
 
- 
- 
メソッドの詳細- 
parsepublic static List<HttpCookie> parse(String header) set-cookieまたはset-cookie2ヘッダー文字列からCookieを構築します。 RFC 2965セクション3.2.2のset-cookie2構文によれば、1つのヘッダー行に複数のCookie定義を含めることができます。それで、これは別のコンストラクタではなく、staticユーティリティ・メソッドになっています。- パラメータ:
- header−set-cookieヘッダーを指定する- String。 ヘッダーは、「set-cookie」または「set-cookie2」トークンで始まっているか、開始トークンをまったく持たないか、のいずれかにすべきである。
- 戻り値:
- ヘッダー行文字列から解析されたCookieのリスト
- スロー:
- IllegalArgumentException- ヘッダー文字列がCookie仕様の構文に違反しているか、Cookie名に不正な文字が含まれている場合。
- NullPointerException−ヘッダー文字列が- nullの場合
 
- 
hasExpiredpublic boolean hasExpired()このHTTP Cookieの有効期限が切れているかどうかを報告します。- 戻り値:
- このHTTP Cookieの有効期限が切れていることを示す場合はtrue。そうでない場合はfalse
 
- 
setCommentpublic void setComment(String purpose) Cookieの目的を説明するコメントを指定します。 コメントは、ブラウザがCookieをユーザーに表示する場合に役立ちます。 Netscapeバージョン0のCookieでは、コメントはサポートされません。- パラメータ:
- purpose−ユーザーに表示するコメントを指定する- String
- 関連項目:
 
- 
getCommentpublic String getComment()このCookieの目的を説明するコメントを返します。Cookieにコメントがない場合は、nullを返します。- 戻り値:
- コメントが格納されたString。コメントがない場合はnull
- 関連項目:
 
- 
setCommentURLpublic void setCommentURL(String purpose) Cookieの目的を説明するコメントURLを指定します。 コメントURLは、ブラウザがCookieをユーザーに表示する場合に役立ちます。 コメントURLはRFC 2965専用です。- パラメータ:
- purpose- ユーザーに表示するコメントURLを指定する- String
- 関連項目:
 
- 
getCommentURLpublic String getCommentURL()このCookieの目的を説明するコメントURLを返します。このCookieにコメントURLがない場合はnullを返します。- 戻り値:
- コメントURLが格納されたString。コメントがない場合はnull
- 関連項目:
 
- 
setDiscardpublic void setDiscard(boolean discard) ユーザー・エージェントがCookieを無条件に破棄すべきかどうかを指定します。 これは、RFC 2965専用の属性です。- パラメータ:
- discard−- trueは、Cookieを無条件に破棄することを示します
- 関連項目:
 
- 
getDiscardpublic boolean getDiscard()Cookieの破棄属性を返します- 戻り値:
- このCookieの破棄属性を表すboolean
- 関連項目:
 
- 
setPortlistpublic void setPortlist(String ports) Cookieのポート・リストを指定します。このリストは、CookieをCookieヘッダー内に収めて送り返す際に使用できるポート(複数可)を制約します。- パラメータ:
- ports- ポート・リストを指定する- String。これは数字のカンマ区切りリストです
- 関連項目:
 
- 
getPortlistpublic String getPortlist()Cookieのポート・リスト属性を返します- 戻り値:
- ポート・リストが格納されたString。存在しない場合はnull
- 関連項目:
 
- 
setDomainpublic void setDomain(String pattern) このCookieが提示されるドメインを指定します。ドメイン名の形式は、RFC 2965によって指定されています。 ドメイン名は .foo.comのようにドットで始まり、指定されたドメイン・ネーム・システム(DNS)のゾーン内のサーバーがそのCookieを参照できることを示しています。たとえばこの場合、www.foo.comはCookieを参照できますが、a.b.foo.comはCookieを参照できません。 特に指定しないかぎり、Cookieはそれを送信したサーバーにのみ返されます。- パラメータ:
- pattern−このCookieが可視となるドメイン名が格納された- String。形式はRFC 2965に従います
- 関連項目:
 
- 
getDomainpublic String getDomain()このCookieに設定されたドメイン名を返します。 ドメイン名の形式は、RFC 2965によって規定されています。- 戻り値:
- ドメイン名が格納されたString
- 関連項目:
 
- 
setMaxAgepublic void setMaxAge(long expiry) Cookieの最長有効期間を秒数で設定します。正の値を指定すると、その秒数が経過したあとにCookieが期限切れになります。 この値は、Cookieの現在の有効期間ではなく、Cookieの期限が切れるまでの最長の有効期間であることに注意してください。 負の値を指定すると、Cookieは持続的に保持されずに、Webブラウザが終了したときに削除されます。 0の値を指定すると、Cookieが削除されます。 - パラメータ:
- expiry−Cookieの最長有効期間を秒数で指定する整数。0の場合、Cookieはすぐに破棄され、それ以外の場合、Cookieの最長有効期間は未定義となります。
- 関連項目:
 
- 
getMaxAgepublic long getMaxAge()Cookieの最長有効期間を秒数で返します。 デフォルトは-1です。これは、ブラウザがシャットダウンされるまでCookieが持続することを示します。- 戻り値:
- Cookieの最長有効期間を秒数で指定する整数
- 関連項目:
 
- 
setPathpublic void setPath(String uri) クライアントがCookieを返す必要のあるCookieのパスを指定します。指定されたディレクトリ内のすべてのページと、そのディレクトリのサブディレクトリ内のすべてのページに対して、Cookieが可視になります。 CookieのパスにはそのCookieを設定するサーブレットを含めてください。たとえば、/catalogを指定した場合、サーバー上の/catalogの下にあるすべてのディレクトリに対して、Cookieが可視になります。 Cookieのパス名の設定方法についての詳細は、RFC 2965で調べてください。RFC 2109は、インターネットで公開されています。 - パラメータ:
- uri−パスを指定する- String
- 関連項目:
 
- 
getPathpublic String getPath()ブラウザがこのCookieを返す先となる、サーバー上のパスを返します。 サーバー上のすべてのサブパスに対して、Cookieが可視になります。- 戻り値:
- サーブレット名を含むパスを指定するString。たとえば、 /catalog
- 関連項目:
 
- 
setSecurepublic void setSecure(boolean flag) CookieをHTTPSやSSLなどのセキュアなプロトコルのみを使用して送信するべきかどうかを示します。デフォルト値は falseです。- パラメータ:
- flag-- trueの場合、Cookieを送信できるのはHTTPSのようなセキュアなプロトコル上でのみです。- falseの場合、任意のプロトコル上で送信できます。
- 関連項目:
 
- 
getSecurepublic boolean getSecure()このcookieを送信する場合はtrueをセキュア・プロトコルに制限し、プロトコルを使用して送信できる場合はfalseを返します。- 戻り値:
- Cookieを任意の標準プロトコル上で送信できる場合はfalse。その他の場合はtrue
- 関連項目:
 
- 
getNamepublic String getName()Cookieの名前を返します。 作成後に名前を変更することはできません。- 戻り値:
- Cookieの名前を指定するString
 
- 
setValuepublic void setValue(String newValue) Cookieの作成後に、Cookieに新しい値を割り当てます。 バイナリ値を使用する場合は、BASE64エンコーディングの使用をお薦めします。バージョン0のCookieの場合、空白、角カッコ、カッコ、等号、カンマ、二重引用符、スラッシュ、疑問符、単価記号、コロン、およびセミコロンを値に含めないようにしてください。 空の値を指定すると、ブラウザ間で異なる動作をする可能性があります。 - パラメータ:
- newValue−新しい値を指定する- String
- 関連項目:
 
- 
getValuepublic String getValue()Cookieの値を返します。- 戻り値:
- Cookieの現在の値が格納されたString
- 関連項目:
 
- 
getVersionpublic int getVersion()このCookieが準拠するプロトコルのバージョンを返します。 バージョン1はRFC 2965/2109に準拠し、バージョン0はNetscapeによる元のCookieドラフト仕様に準拠します。 ブラウザから提供されるCookieは、そのブラウザのCookieバージョンを使用および識別します。- 戻り値:
- Cookieが元のNetscape仕様に準拠する場合は0、RFC 2965/2109に準拠する場合は1
- 関連項目:
 
- 
setVersionpublic void setVersion(int v) このCookieが準拠するCookieプロトコルのバージョンを設定します。 バージョン0は元のNetscape Cookie仕様に準拠します。 バージョン1はRFC 2965/2109に準拠します。- パラメータ:
- v−Cookieが元のNetscape仕様に準拠すべきである場合は0、RFC 2965/2109に準拠すべきである場合は1
- スロー:
- IllegalArgumentException−- vが0、1のいずれでもない場合
- 関連項目:
 
- 
isHttpOnlypublic boolean isHttpOnly()このCookieがHttpOnly属性を含む場合はtrueを返します。 これは、JavaScriptのようなスクリプト・エンジンがCookieにアクセスできてはいけないことを意味します。- 戻り値:
- このCookieをHTTPOnlyとみなすべき場合はtrue
- 関連項目:
 
- 
setHttpOnlypublic void setHttpOnly(boolean httpOnly) CookieをHTTP Onlyとみなすべきかどうかを示します。trueに設定されている場合、JavaScriptのようなスクリプト・エンジンがCookieにアクセスできてはいけないことを意味します。- パラメータ:
- httpOnly-- trueの場合はCookieをHTTPのみとします。つまり、HTTP要求の一部としてのみ可視となります。
- 関連項目:
 
- 
domainMatchesあるホスト名があるドメインに含まれるかどうかをチェックするためのユーティリティ・メソッド。この概念については、Cookie仕様内で説明されています。 この概念を理解するには、まず、いくつかの用語を定義しておく必要があります。 有効ホスト名=ホスト名にドットが含まれる場合はhostname、 
 ドットが含まれない場合はhostname.localホストAの名前がホストBの名前とドメイン一致するのは、次のいずれかが成り立つ場合です。 - それらのホスト名文字列を文字列比較した結果が等しくなる
- AがHDN文字列であり、NBの形式を持つ。ここで、Nは空でない名前文字列であり、Bは.B'の形式を持ち、B'はHDN文字列である。 (したがって、x.y.comは、.Y.comにはドメイン一致するが、Y.comにはドメイン一致しない。)
 ホストがドメインに含まれない(RFC 2965セクション3.3.2)のは、次のいずれかが成り立つ場合です。 - Domain属性の値に埋込みドットが含まれておらず、その値が.localではない。
- 要求ホストから派生した有効ホスト名が、Domain属性とドメイン一致しない。
- 要求ホストがHDN (IPアドレスではない)であり、HDの形式を持つ。ここで、DはDomain属性の値であり、Hは1つ以上のドットを含む文字列である。
 例 - 要求ホストy.x.foo.comからのDomain=.foo.comのSet-Cookie2は拒否される。なぜなら、Hはy.xであり、ドットが含まれるからである。
- 要求ホストx.foo.comからのDomain=.foo.comのSet-Cookie2は受け入れられる。
- Domain=.comまたはDomain=.com. を含むSet-Cookie2は常に拒否される。なぜなら、埋込みドットが存在しないからである。
- 要求ホストexampleからのDomain=.localのSet-Cookie2は受け入れられる。なぜなら、要求ホストの有効ホスト名はexample.localであり、example.localは.localにドメイン一致するからである。
 - パラメータ:
- domain−ホスト名のチェックに使用するドメイン名
- host−問題のホスト名
- 戻り値:
- それらがドメイン一致する場合はtrue、それ以外の場合はfalse
 
- 
toStringpublic String toString()このCookieのCookieヘッダー文字列表現を構築します。その形式は、対応するCookie仕様で定義されているものですが、先頭の「Cookie」トークンは付きません。
- 
equalspublic boolean equals(Object obj) 2つのHTTP Cookieが等しいかどうかを判定します。結果が trueになるのは、2つのCookieが同じドメイン(大文字、小文字の区別なし)から送られてきたものであり、同じ名前(大文字、小文字の区別なし)を持ち、同じパス(大文字、小文字の区別あり)を持つ場合だけです。
- 
hashCodepublic int hashCode()このHTTP Cookieのハッシュ・コードを返します。 結果は、このCookieの3つの主要コンポーネントである名前、ドメイン、パスのハッシュ・コード値を合計したものになります。 すなわち、ハッシュ・コードは次の式の値です。getName().toLowerCase().hashCode() 
 + getDomain().toLowerCase().hashCode()
 + getPath().hashCode()
- 
clonepublic Object clone()このオブジェクトのコピーを作成して返します。
 
-