|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.net.HttpCookie
public final class HttpCookie
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 개의 형식의 구문을 모두 받아들일 수가 있습니다.
생성자 의 개요 | |
---|---|
HttpCookie (String name,
String value)
지정된 이름과 값을 가지는 Cookie 를 구축합니다. |
메소드의 개요 | |
---|---|
Object |
clone ()
이 객체의 카피를 작성해 돌려줍니다. |
static boolean |
domainMatches (String domain,
String host)
있는 호스트명이 있는 도메인에 포함될지 어떨지를 체크하기 위한 유틸리티 메소드. |
boolean |
equals (Object obj)
2 개의 HTTP Cookie 가 동일한지 어떤지를 판정합니다. |
String |
getComment ()
이 Cookie 의 목적을 설명하는 코멘트를 돌려줍니다. |
String |
getCommentURL ()
이 Cookie 의 목적을 설명하는 코멘트 URL 를 돌려줍니다. |
boolean |
getDiscard ()
Cookie 의 파기 속성을 돌려줍니다. |
String |
getDomain ()
이 Cookie 로 설정된 도메인명을 돌려줍니다. |
long |
getMaxAge ()
Cookie 의 최장 유효기간을 초수로 돌려줍니다. |
String |
getName ()
Cookie 의 이름을 돌려줍니다. |
String |
getPath ()
브라우저가 이 Cookie 를 돌려주는 앞이 되는, 서버상의 패스를 돌려줍니다. |
String |
getPortlist ()
Cookie 의 포트 리스트 속성을 돌려줍니다. |
boolean |
getSecure ()
브라우저가 시큐리티 보호된 프로토콜 경유에서만 Cookie 를 송신하고 있는 경우는 true , 브라우저가 어떠한 프로토콜을 사용해도 Cookie 를 송신할 수 있는 경우는 false 를 돌려줍니다. |
String |
getValue ()
Cookie 의 값을 돌려줍니다. |
int |
getVersion ()
이 Cookie 가 준거하는 프로토콜의 버젼을 돌려줍니다. |
boolean |
hasExpired ()
이 HTTP Cookie 의 유효기간이 끊어져 있는지 어떤지를 보고합니다. |
int |
hashCode ()
이 HTTP Cookie 의 해시 코드를 돌려줍니다. |
static List <HttpCookie > |
parse (String header)
set-cookie 또는 set-cookie2 헤더 캐릭터 라인으로부터 Cookie 를 구축합니다. |
void |
setComment (String purpose)
Cookie 의 목적을 설명하는 코멘트를 지정합니다. |
void |
setCommentURL (String purpose)
Cookie 의 목적을 설명하는 코멘트 URL 를 지정합니다. |
void |
setDiscard (boolean discard)
사용자 에이전트가 Cookie 를 무조건 파기해야할 것인가 제발을 지정합니다. |
void |
setDomain (String pattern)
이 Cookie 가 제시되는 도메인을 지정합니다. |
void |
setMaxAge (long expiry)
Cookie 의 최장 유효기간을 초수로 설정합니다. |
void |
setPath (String uri)
클라이언트가 Cookie 를 돌려줄 필요가 있는 Cookie 의 패스를 지정합니다. |
void |
setPortlist (String ports)
Cookie 의 포트 리스트를 지정합니다. |
void |
setSecure (boolean flag)
HTTPS 나 SSL 와 같은, 시큐리티 보호된 프로토콜을 사용하고 있는 경우에게만, Cookie 를 송신할지 어떨지를, 브라우저에 지시합니다. |
void |
setValue (String newValue)
Cookie 의 작성 후에, Cookie 에 새로운 값을 할당합니다. |
void |
setVersion (int v)
이 Cookie 가 준거하는 Cookie 프로토콜의 버젼을 설정합니다. |
String |
toString ()
이 Cookie 의 Cookie 헤더 캐릭터 라인 표현을 구축합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
finalize , getClass , notify , notifyAll , wait , wait , wait |
생성자 의 상세 |
---|
public HttpCookie(String name, String value)
이름은 RFC 2965 에 준거하고 있을 필요가 있습니다. 즉, ASCII 의 영수문자만을 포함해, 콤마, 세미콜론, 공백을 포함하지 못하고,$ 문자가 선두에 있어서는 되지 않습니다. Cookie 의 작성 후로 이름을 변경할 수 없습니다.
값에는 특히 제한은 없습니다. 그 값은 일반적으로, 서버에 있어서의 보고 의미가 있습니다. Cookie 의 값은, 작성 후에 setValue
메소드를 사용해 변경할 수 있습니다.
특히 지정하지 않는 한, Cookie 는 RFC 2965 의 Cookie 스펙에 따라 작성됩니다. 버젼을 변경하려면 setVersion
메소드를 사용합니다.
name
- Cookie 의 이름을 지정하는 String
value
- Cookie 의 값을 지정하는 String
IllegalArgumentException
- Cookie 명에 부당한 문자가 포함되어 있는지, Cookie 명이 Cookie 프로토콜용으로서 예약되고 있는 토큰의 1 개인 경우
NullPointerException
- name 가 null 의 경우setValue(java.lang.String)
,
setVersion(int)
메소드의 상세 |
---|
public static List <HttpCookie > parse(String header)
header
- set-cookie 헤더를 지정하는 String. 헤더는, 「set-cookie」또는 「set-cookie2」토큰으로 시작되어 있는지, 개시 토큰을 전혀 가지지 않는가, 의 어느 쪽인가에 해야 한다
IllegalArgumentException
- 헤더 캐릭터 라인이 Cookie 스펙의 구문에 위반하고 있는지, Cookie 명에 부당한 문자가 포함되어 있는지, Cookie 명이 Cookie 프로토콜용으로서 예약되고 있는 토큰의 1 개인 경우
NullPointerException
- 헤더 캐릭터 라인이 null 의 경우public boolean hasExpired()
public void setComment(String purpose)
purpose
- 사용자에게 표시하는 코멘트를 지정하는 String
getComment()
public String getComment()
null
를 돌려줍니다.
String
. 코멘트가 없는 경우는 null
setComment(java.lang.String)
public void setCommentURL(String purpose)
purpose
- 사용자에게 표시하는 코멘트 URL 를 지정하는 String
getCommentURL()
public String getCommentURL()
null
를 돌려줍니다.
String
. 코멘트가 없는 경우는 null
setCommentURL(java.lang.String)
public void setDiscard(boolean discard)
discard
- true 는, Cookie 를 무조건 파기하는 것을 나타내는getDiscard()
public boolean getDiscard()
setDiscard(boolean)
public void setPortlist(String ports)
ports
- 포트 리스트를 지정하는 String. 이것은 숫자의 콤마 단락 리스트인getPortlist()
public String getPortlist()
setPortlist(java.lang.String)
public void setDomain(String pattern)
도메인명의 형식은, 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()
String
setDomain(java.lang.String)
public void setMaxAge(long expiry)
정의 값을 지정하면(자), 그 초수가 경과한 뒤에 Cookie 가 기한 마감이 됩니다. 이 값은, Cookie 의 현재의 유효기간은 아니고, Cookie 의 기한이 지날 때까지의 「최장」의 유효기간인 것에 주의해 주세요.
0 보다 작은 값을 지정하면(자), Cookie 는 지속적으로 보관 유지되지 않고 , Web 브라우저가 종료했을 때에 삭제됩니다. 0 의 값을 지정하면(자), Cookie 가 삭제됩니다.
expiry
- Cookie 의 최장 유효기간을 초수로 지정하는 정수. 0 의 경우, Cookie 는 곧바로 파기 되는 것이 당연하다. 그 이외의 경우, Cookie 의 최장 유효기간은 미정도리가 되는getMaxAge()
public long getMaxAge()
-1
입니다. 이것은, 브라우저가 종료 될 때까지 Cookie 가 지속하는 것을 나타냅니다.
setMaxAge(long)
public void setPath(String uri)
지정된 디렉토리내의 모든 페이지와 그 디렉토리의 서브 디렉토리내의 모든 페이지에 대해서, Cookie 가 가시가 됩니다. Cookie 의 패스에는 그 Cookie 를 설정하는 서브 렛을 포함해 주세요. 예를 들어,/catalog 를 지정했을 경우, 서버상의 /catalog 아래에 있는 모든 디렉토리에 대해서, Cookie 가 가시가 됩니다.
Cookie 의 경로명의 설정 방법법에 대한 자세한 것은, RFC 2965 로 조사해 주세요. RFC 2109 는, 인터넷으로 공개되고 있습니다.
uri
- 패스를 지정하는 String
getPath()
public String getPath()
String
. 예: /catalogsetPath(java.lang.String)
public void setSecure(boolean flag)
디폴트 값는 false
입니다.
flag
- true
의 경우, 시큐리티 보호된 프로토콜을 사용하고 있는 경우에게만, 브라우저로부터 서버에 Cookie 가 송신된다. false
의 경우, 임의의 프로토콜상에서 송신되는getSecure()
public boolean getSecure()
true
, 브라우저가 어떠한 프로토콜을 사용해도 Cookie 를 송신할 수 있는 경우는 false
를 돌려줍니다.
true
, 그 이외의 경우는 false
setSecure(boolean)
public String getName()
String
public void setValue(String newValue)
버젼 0 의 Cookie 의 경우, 공백, 꺽쇄묶음, 괄호, 등호, 콤마, 이중 인용부호, slash, 물음표, 단가 기호, 구두점, 및 세미콜론을 값에 포함하지 않게 해 주세요. 빈 상태(empty)의 값을 지정하면(자), 브라우저간에 다른 동작을 할 가능성이 있습니다.
newValue
- 새로운 값을 지정하는 String
getValue()
public String getValue()
String
setValue(java.lang.String)
public int getVersion()
setVersion(int)
public void setVersion(int v)
v
- Cookie 가 원의 Netscape 스펙에 준거해야 하는 경우는 0, RFC 2965/2109 에 준거해야 하는 경우는 1
IllegalArgumentException
- v 가 0, 1 의 머지않아도 아닌 경우getVersion()
public static boolean domainMatches(String domain, String host)
이 개념에 대해서는, Cookie 스펙내에서 설명되고 있습니다. 이 개념을 이해하려면 , 우선, 몇개의 용어를 정의해 둘 필요가 있습니다.
유효 호스트명 = 호스트명에 닷이 포함되는 경우는 hostname,
닷이 포함되지 않는 경우는 hostname.local
호스트 A 의 이름이 호스트 B 의 이름과 도메인 일치하는 것은, 다음중 한쪽이 성립되는 경우입니다.
- 그러한 호스트 명문자열을 캐릭터 라인 비교한 결과가 동일해진다
- A 가 HDN 캐릭터 라인이며, NB 의 형식을 가진다. 여기서, N 는 빈 상태(empty)이 아닌 이름 캐릭터 라인이며, 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 는 항상 거부된다. 왜냐하면, 매입 닷이 존재하지 않기 때문에이다.
- Domain=ajax.com 를 포함한 Set-Cookie2 는 받아들여져 Domain 의 값은 . ajax.com 이다고 보인다. 왜냐하면, 값의 선두에는 닷이 추가되기 때문이다.
- 요구 호스트 example 로부터의 Domain=.local 의 Set-Cookie2 는 받아들여진다. 왜냐하면, 요구 호스트의 유효 호스트명은 example.local 이며, example.local 는 . local 에 도메인 일치하기 때문이다.
domain
- 호스트명의 체크에 사용하는 도메인명host
- 문제의 호스트명
public String toString()
Object
내의 toString
public boolean equals(Object obj)
결과가 true 가 되는 것은, 2 개의 Cookie 가 같은 도메인 (대문자, 소문자의 구별 없음)으로부터 보내져 온 것이어, 같은 이름 (대문자, 소문자의 구별 없음)을 가져, 같은 패스 (대문자, 소문자의 구별 있어)를 가지는 경우만입니다.
Object
내의 equals
obj
- 비교 대상의 참조 객체
Object.hashCode()
,
Hashtable
public int hashCode()
getName(). toLowerCase(). hashCode()
+ getDomain(). toLowerCase(). hashCode()
+ getPath(). hashCode()
Object
내의 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public Object clone()
Object
내의 clone
Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.