org.apache.http.cookie

## Interface CookieSpec

All Known Implementing Classes:
  AbstractCookieSpec, BestMatchSpec, BrowserCompatSpec, CookieSpecBase, DefaultCookieSpec, IgnoreSpec, NetscapeDraftSpec, RFC2109Spec, RFC2965Spec, RFC6265CookieSpec, RFC6265LaxSpec, RFC6265StrictSpec

    public interface CookieSpec

Defines the cookie management specification.

Cookie management specification must define

- rules of parsing "Set-Cookie" header
- rules of validation of parsed cookies
- formatting of "Cookie" header

for a given host, port and path of origin

Please do not use methods marked as @Obsolete. They have been rendered obsolete by RFC 6265.

Since:
  4.0

### Method Summary

Methods
`List<org.apache.http.Header>` `formatCookies(List<Cookie> cookies)` Create `"Cookie"` headers for an array of Cookies.
`int` `getVersion()` Returns version of the state management this cookie specification conforms to.
`org.apache.http.Header` `getVersionHeader()` Returns a request header identifying what version of the state management specification is understood.
`boolean` `match(Cookie cookie, CookieOrigin origin)` Determines if a Cookie matches the target location.
`List<Cookie>` `parse(org.apache.http.Header header, CookieOrigin origin)` Parse the `"Set-Cookie"` Header into an array of Cookies.
`void` `validate(Cookie cookie, CookieOrigin origin)` Validate the cookie according to validation rules defined by the cookie specification.

### Method Detail

#### getVersion

    @Obsolete
    int getVersion()

Returns version of the state management this cookie specification conforms to.

Returns:
  version of the state management specification

#### parse

    List<Cookie> parse(org.apache.http.Header header,
                     CookieOrigin origin)
                       throws MalformedCookieException

Parse the `"Set-Cookie"` Header into an array of Cookies.

This method will not perform the validation of the resultant `Cookie`s

Parameters:
  `header` - the `Set-Cookie` received from the server
  `origin` - details of the cookie origin
Returns:
  an array of `Cookie`s parsed from the header
Throws:
  `MalformedCookieException` - if an exception occurs during parsing
See Also:
  `validate(org.apache.http.cookie.Cookie, org.apache.http.cookie.CookieOrigin)`

#### validate

    void validate(Cookie cookie,
                CookieOrigin origin)
                  throws MalformedCookieException

Validate the cookie according to validation rules defined by the cookie specification.

Parameters:
  `cookie` - the Cookie to validate
  `origin` - details of the cookie origin
Throws:
  `MalformedCookieException` - if the cookie is invalid

#### match

    boolean match(Cookie cookie,
                CookieOrigin origin)

Determines if a Cookie matches the target location.

Parameters:
  `cookie` - the Cookie to be matched
  `origin` - the target to test against
Returns:
  `true` if the cookie should be submitted with a request with given attributes, `false` otherwise.

#### formatCookies

    List<org.apache.http.Header> formatCookies(List<Cookie> cookies)

Create `"Cookie"` headers for an array of Cookies.

Parameters:
  `cookies` - the Cookies format into a Cookie header
Returns:
  a Header for the given Cookies.
Throws:
  `IllegalArgumentException` - if an input parameter is illegal

#### getVersionHeader

    @Obsolete
    org.apache.http.Header getVersionHeader()

Returns a request header identifying what version of the state management specification is understood. May be `null` if the cookie specification does not support `Cookie2` header.