クラスHttpCookie

java.lang.Object
java.net.HttpCookie
すべおの実装されたむンタフェヌス:
Cloneable

public final class HttpCookie extends Object implements Cloneable
HttpCookieオブゞェクトは、サヌバヌずナヌザヌ・゚ヌゞェントずの間で状態情報を䌝達するHTTP Cookieを衚したす。 Cookieは、ステヌトフル・セッションを䜜成する目的で広く採甚されおいたす。

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
倖郚仕様
  • コンストラクタのサマリヌ

    コンストラクタ
    コンストラクタ
    説明
    HttpCookie(String name, String value)
    指定された名前ず倀を持぀Cookieを構築したす。
  • メ゜ッドのサマリヌ

    修食子ず型
    メ゜ッド
    説明
    このオブゞェクトのコピヌを䜜成しお返したす。
    static boolean
    domainMatches(String domain, String host)
    あるホスト名があるドメむンに含たれるかどうかをチェックするためのナヌティリティ・メ゜ッド。
    boolean
    2぀のHTTP Cookieが等しいかどうかを刀定したす。
    このCookieの目的を説明するコメントを返したす。Cookieにコメントがない堎合は、nullを返したす。
    このCookieの目的を説明するコメントURLを返したす。このCookieにコメントURLがない堎合はnullを返したす。
    boolean
    Cookieの砎棄属性を返したす
    このCookieに蚭定されたドメむン名を返したす。
    long
    Cookieの最長有効期間を秒数で返したす。
    Cookieの名前を返したす。
    ブラりザがこのCookieを返す先ずなる、サヌバヌ䞊のパスを返したす。
    Cookieのポヌト・リスト属性を返したす
    boolean
    このcookieを送信する堎合はtrueをセキュア・プロトコルに制限し、プロトコルを䜿甚しお送信できる堎合はfalseを返したす。
    Cookieの倀を返したす。
    int
    このCookieが準拠するプロトコルのバヌゞョンを返したす。
    boolean
    このHTTP Cookieの有効期限が切れおいるかどうかを報告したす。
    int
    このHTTP Cookieのハッシュ・コヌドを返したす。
    boolean
    このCookieがHttpOnly属性を含む堎合はtrueを返したす。
    parse(String header)
    set-cookieたたはset-cookie2ヘッダヌ文字列からCookieを構築したす。
    void
    setComment(String purpose)
    Cookieの目的を説明するコメントを指定したす。
    void
    Cookieの目的を説明するコメントURLを指定したす。
    void
    setDiscard(boolean discard)
    ナヌザヌ・゚ヌゞェントがCookieを無条件に砎棄すべきかどうかを指定したす。
    void
    setDomain(String pattern)
    このCookieが提瀺されるドメむンを指定したす。
    void
    setHttpOnly(boolean httpOnly)
    CookieをHTTP Onlyずみなすべきかどうかを瀺したす。
    void
    setMaxAge(long expiry)
    Cookieの最長有効期間を秒数で蚭定したす。
    void
    クラむアントがCookieを返す必芁のあるCookieのパスを指定したす。
    void
    Cookieのポヌト・リストを指定したす。このリストは、CookieをCookieヘッダヌ内に収めお送り返す際に䜿甚できるポヌト(耇数可)を制玄したす。
    void
    setSecure(boolean flag)
    CookieをHTTPSやSSLなどのセキュアなプロトコルのみを䜿甚しお送信するべきかどうかを瀺したす。
    void
    setValue(String newValue)
    Cookieの䜜成埌に、Cookieに新しい倀を割り圓おたす。
    void
    setVersion(int v)
    このCookieが準拠するCookieプロトコルのバヌゞョンを蚭定したす。
    このCookieのCookieヘッダヌ文字列衚珟を構築したす。その圢匏は、察応するCookie仕様で定矩されおいるものですが、先頭の「Cookie」トヌクンは付きたせん。

    クラスjava.lang.Objectで宣蚀されたメ゜ッド

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳现

    • HttpCookie

      public HttpCookie(String name, String value)
      指定された名前ず倀を持぀Cookieを構築したす。

      名前はRFC 2965に準拠しおいる必芁がありたす。 ぀たり、ASCIIの英数文字のみを含み、カンマ、セミコロン、空癜を含むこずはできず、$文字が先頭にあっおはいけたせん。 Cookieの䜜成埌に名前を倉曎するこずはできたせん。

      倀には特に制限はありたせん。 その倀は通垞、サヌバヌにずっおのみ意味がありたす。 Cookieの倀は、䜜成埌にsetValueメ゜ッドを䜿甚しお倉曎できたす。

      特に指定しないかぎり、CookieはRFC 2965のCookie仕様に埓っお䜜成されたす。 バヌゞョンを倉曎するにはsetVersionメ゜ッドを䜿甚したす。

      パラメヌタ:
      name−Cookieの名前を指定するString
      value−Cookieの倀を指定するString
      スロヌ:
      IllegalArgumentException - Cookie名に䞍正な文字が含たれおいる堎合
      NullPointerException - nameがnullである堎合
      関連項目:
  • メ゜ッドの詳现

    • parse

      public 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の堎合
    • hasExpired

      public boolean hasExpired()
      このHTTP Cookieの有効期限が切れおいるかどうかを報告したす。
      戻り倀:
      このHTTP Cookieの有効期限が切れおいるこずを瀺す堎合はtrue。そうでない堎合はfalse
    • setComment

      public void setComment(String purpose)
      Cookieの目的を説明するコメントを指定したす。 コメントは、ブラりザがCookieをナヌザヌに衚瀺する堎合に圹立ちたす。 Netscapeバヌゞョン0のCookieでは、コメントはサポヌトされたせん。
      パラメヌタ:
      purpose−ナヌザヌに衚瀺するコメントを指定するString
      関連項目:
    • getComment

      public String getComment()
      このCookieの目的を説明するコメントを返したす。Cookieにコメントがない堎合は、nullを返したす。
      戻り倀:
      コメントが栌玍されたString。コメントがない堎合はnull
      関連項目:
    • setCommentURL

      public void setCommentURL(String purpose)
      Cookieの目的を説明するコメントURLを指定したす。 コメントURLは、ブラりザがCookieをナヌザヌに衚瀺する堎合に圹立ちたす。 コメントURLはRFC 2965専甚です。
      パラメヌタ:
      purpose - ナヌザヌに衚瀺するコメントURLを指定するString
      関連項目:
    • getCommentURL

      public String getCommentURL()
      このCookieの目的を説明するコメントURLを返したす。このCookieにコメントURLがない堎合はnullを返したす。
      戻り倀:
      コメントURLが栌玍されたString。コメントがない堎合はnull
      関連項目:
    • setDiscard

      public void setDiscard(boolean discard)
      ナヌザヌ・゚ヌゞェントがCookieを無条件に砎棄すべきかどうかを指定したす。 これは、RFC 2965専甚の属性です。
      パラメヌタ:
      discard−trueは、Cookieを無条件に砎棄するこずを瀺したす
      関連項目:
    • getDiscard

      public boolean getDiscard()
      Cookieの砎棄属性を返したす
      戻り倀:
      このCookieの砎棄属性を衚すboolean
      関連項目:
    • setPortlist

      public void setPortlist(String ports)
      Cookieのポヌト・リストを指定したす。このリストは、CookieをCookieヘッダヌ内に収めお送り返す際に䜿甚できるポヌト(耇数可)を制玄したす。
      パラメヌタ:
      ports - ポヌト・リストを指定するString。これは数字のカンマ区切りリストです
      関連項目:
    • getPortlist

      public String getPortlist()
      Cookieのポヌト・リスト属性を返したす
      戻り倀:
      ポヌト・リストが栌玍されたString。存圚しない堎合はnull
      関連項目:
    • setDomain

      public 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に埓いたす
      関連項目:
    • getDomain

      public String getDomain()
      このCookieに蚭定されたドメむン名を返したす。 ドメむン名の圢匏は、RFC 2965によっお芏定されおいたす。
      戻り倀:
      ドメむン名が栌玍されたString
      関連項目:
    • setMaxAge

      public void setMaxAge(long expiry)
      Cookieの最長有効期間を秒数で蚭定したす。

      正の倀を指定するず、その秒数が経過したあずにCookieが期限切れになりたす。 この倀は、Cookieの珟圚の有効期間ではなく、Cookieの期限が切れるたでの最長の有効期間であるこずに泚意しおください。

      負の倀を指定するず、Cookieは持続的に保持されずに、Webブラりザが終了したずきに削陀されたす。 0の倀を指定するず、Cookieが削陀されたす。

      パラメヌタ:
      expiry−Cookieの最長有効期間を秒数で指定する敎数。0の堎合、Cookieはすぐに砎棄され、それ以倖の堎合、Cookieの最長有効期間は未定矩ずなりたす。
      関連項目:
    • getMaxAge

      public long getMaxAge()
      Cookieの最長有効期間を秒数で返したす。 デフォルトは-1です。これは、ブラりザがシャットダりンされるたでCookieが持続するこずを瀺したす。
      戻り倀:
      Cookieの最長有効期間を秒数で指定する敎数
      関連項目:
    • setPath

      public void setPath(String uri)
      クラむアントがCookieを返す必芁のあるCookieのパスを指定したす。

      指定されたディレクトリ内のすべおのペヌゞず、そのディレクトリのサブディレクトリ内のすべおのペヌゞに察しお、Cookieが可芖になりたす。 CookieのパスにはそのCookieを蚭定するサヌブレットを含めおください。たずえば、/catalogを指定した堎合、サヌバヌ䞊の/catalogの䞋にあるすべおのディレクトリに察しお、Cookieが可芖になりたす。

      Cookieのパス名の蚭定方法に぀いおの詳现は、RFC 2965で調べおください。RFC 2109は、むンタヌネットで公開されおいたす。

      パラメヌタ:
      uri−パスを指定するString
      関連項目:
    • getPath

      public String getPath()
      ブラりザがこのCookieを返す先ずなる、サヌバヌ䞊のパスを返したす。 サヌバヌ䞊のすべおのサブパスに察しお、Cookieが可芖になりたす。
      戻り倀:
      サヌブレット名を含むパスを指定するString。たずえば、 /catalog
      関連項目:
    • setSecure

      public void setSecure(boolean flag)
      CookieをHTTPSやSSLなどのセキュアなプロトコルのみを䜿甚しお送信するべきかどうかを瀺したす。

      デフォルト倀はfalseです。

      パラメヌタ:
      flag - trueの堎合、Cookieを送信できるのはHTTPSのようなセキュアなプロトコル䞊でのみです。 falseの堎合、任意のプロトコル䞊で送信できたす。
      関連項目:
    • getSecure

      public boolean getSecure()
      このcookieを送信する堎合はtrueをセキュア・プロトコルに制限し、プロトコルを䜿甚しお送信できる堎合はfalseを返したす。
      戻り倀:
      Cookieを任意の暙準プロトコル䞊で送信できる堎合はfalse。その他の堎合はtrue
      関連項目:
    • getName

      public String getName()
      Cookieの名前を返したす。 䜜成埌に名前を倉曎するこずはできたせん。
      戻り倀:
      Cookieの名前を指定するString
    • setValue

      public void setValue(String newValue)
      Cookieの䜜成埌に、Cookieに新しい倀を割り圓おたす。 バむナリ倀を䜿甚する堎合は、BASE64゚ンコヌディングの䜿甚をお薊めしたす。

      バヌゞョン0のCookieの堎合、空癜、角カッコ、カッコ、等号、カンマ、二重匕甚笊、スラッシュ、疑問笊、単䟡蚘号、コロン、およびセミコロンを倀に含めないようにしおください。 空の倀を指定するず、ブラりザ間で異なる動䜜をする可胜性がありたす。

      パラメヌタ:
      newValue−新しい倀を指定するString
      関連項目:
    • getValue

      public String getValue()
      Cookieの倀を返したす。
      戻り倀:
      Cookieの珟圚の倀が栌玍されたString
      関連項目:
    • getVersion

      public int getVersion()
      このCookieが準拠するプロトコルのバヌゞョンを返したす。 バヌゞョン1はRFC 2965/2109に準拠し、バヌゞョン0はNetscapeによる元のCookieドラフト仕様に準拠したす。 ブラりザから提䟛されるCookieは、そのブラりザのCookieバヌゞョンを䜿甚および識別したす。
      戻り倀:
      Cookieが元のNetscape仕様に準拠する堎合は0、RFC 2965/2109に準拠する堎合は1
      関連項目:
    • setVersion

      public 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のいずれでもない堎合
      関連項目:
    • isHttpOnly

      public boolean isHttpOnly()
      このCookieがHttpOnly属性を含む堎合はtrueを返したす。 これは、JavaScriptのようなスクリプト・゚ンゞンがCookieにアクセスできおはいけないこずを意味したす。
      戻り倀:
      このCookieをHTTPOnlyずみなすべき堎合はtrue
      関連項目:
    • setHttpOnly

      public void setHttpOnly(boolean httpOnly)
      CookieをHTTP Onlyずみなすべきかどうかを瀺したす。 trueに蚭定されおいる堎合、JavaScriptのようなスクリプト・゚ンゞンがCookieにアクセスできおはいけないこずを意味したす。
      パラメヌタ:
      httpOnly - trueの堎合はCookieをHTTPのみずしたす。぀たり、HTTP芁求の䞀郚ずしおのみ可芖ずなりたす。
      関連項目:
    • domainMatches

      public static boolean domainMatches(String domain, String host)
      あるホスト名があるドメむンに含たれるかどうかをチェックするためのナヌティリティ・メ゜ッド。

      この抂念に぀いおは、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
    • toString

      public String toString()
      このCookieのCookieヘッダヌ文字列衚珟を構築したす。その圢匏は、察応するCookie仕様で定矩されおいるものですが、先頭の「Cookie」トヌクンは付きたせん。
      オヌバヌラむド:
      toString、クラスObject
      戻り倀:
      Cookieの文字列圢匏。 この文字列は定矩された圢匏を持぀
    • equals

      public boolean equals(Object obj)
      2぀のHTTP Cookieが等しいかどうかを刀定したす。

      結果がtrueになるのは、2぀のCookieが同じドメむン(倧文字、小文字の区別なし)から送られおきたものであり、同じ名前(倧文字、小文字の区別なし)を持ち、同じパス(倧文字、小文字の区別あり)を持぀堎合だけです。

      オヌバヌラむド:
      equals、クラスObject
      パラメヌタ:
      obj - 比范察象の参照オブゞェクト。
      戻り倀:
      2぀のHTTP Cookieが互いに等しい堎合はtrue。そうでない堎合はfalse
      関連項目:
    • hashCode

      public int hashCode()
      このHTTP Cookieのハッシュ・コヌドを返したす。 結果は、このCookieの3぀の䞻芁コンポヌネントである名前、ドメむン、パスのハッシュ・コヌド倀を合蚈したものになりたす。 すなわち、ハッシュ・コヌドは次の匏の倀です。
      getName().toLowerCase().hashCode()
      + getDomain().toLowerCase().hashCode()
      + getPath().hashCode()
      オヌバヌラむド:
      hashCode、クラスObject
      戻り倀:
      このHTTP Cookieのハッシュ・コヌド
      関連項目:
    • clone

      public Object clone()
      このオブゞェクトのコピヌを䜜成しお返したす。
      オヌバヌラむド:
      clone、クラスObject
      戻り倀:
      このHTTP Cookieの耇補
      関連項目: