class Poco::Net::HTTPCookie

Overview

This class represents a HTTP Cookie. More…

#include <HTTPCookie.h>

class HTTPCookie
{
public:
    // construction

    HTTPCookie();
    HTTPCookie(const std::string& name);
    HTTPCookie(const NameValueCollection& nvc);

    HTTPCookie(
        const std::string& name,
        const std::string& value
        );

    HTTPCookie(const HTTPCookie& cookie);

    // methods

    HTTPCookie&
    operator=(const HTTPCookie& cookie);

    void
    setVersion(int version);

    int
    getVersion() const;

    void
    setName(const std::string& name);

    const std::string&
    getName() const;

    void
    setValue(const std::string& value);

    const std::string&
    getValue() const;

    void
    setComment(const std::string& comment);

    const std::string&
    getComment() const;

    void
    setDomain(const std::string& domain);

    const std::string&
    getDomain() const;

    void
    setPath(const std::string& path);

    void
    setPriority(const std::string& priority);

    const std::string&
    getPath() const;

    const std::string&
    getPriority() const;

    void
    setSecure(bool secure);

    bool
    getSecure() const;

    void
    setMaxAge(int maxAge);

    int
    getMaxAge() const;

    void
    setHttpOnly(bool flag = true);

    bool
    getHttpOnly() const;

    std::string
    toString() const;

    static
    std::string
    escape(const std::string& str);

    static
    std::string
    unescape(const std::string& str);
};

Detailed Documentation

This class represents a HTTP Cookie.

A cookie is a small amount of information sent by a Web server to a Web browser, saved by the browser, and later sent back to the server. A cookie’s value can uniquely identify a client, so cookies are commonly used for session management.

A cookie has a name, a single value, and optional attributes such as a comment, path and domain qualifiers, a maximum age, and a version number.

This class supports both the Version 0 (by Netscape) and Version 1 (by RFC 2109) cookie specifications. By default, cookies are created using Version 0 to ensure the best interoperability.

Construction

Creates an empty HTTPCookie.

Creates a cookie with the given name.

The cookie never expires.

Creates a cookie from the given NameValueCollection.

Creates a cookie with the given name and value.

The cookie never expires.

Note: If value contains whitespace or non-alphanumeric characters, the value should be escaped by calling escape() before passing it to the constructor.

Creates the HTTPCookie by copying another one.

Methods

Assigns a cookie.

Sets the version of the cookie.

Version must be either 0 (denoting a Netscape cookie) or 1 (denoting a RFC 2109 cookie).

Returns the version of the cookie, which is either 0 or 1.

Sets the name of the cookie.

Returns the name of the cookie.

Sets the value of the cookie.

According to the cookie specification, the size of the value should not exceed 4 Kbytes.

Note: If value contains whitespace or non-alphanumeric characters, the value should be escaped by calling escape() prior to passing it to setName().

Returns the value of the cookie.

Sets the comment for the cookie.

Comments are only supported for version 1 cookies.

Returns the comment for the cookie.

Sets the domain for the cookie.

Returns the domain for the cookie.

Sets the path for the cookie.

Sets the priority for the cookie.

Returns the path for the cookie.

Returns the priority for the cookie.

Sets the value of the secure flag for the cookie.

Returns the value of the secure flag for the cookie.

Sets the maximum age in seconds for the cookie.

A value of -1 (default) causes the cookie to become a session cookie, which will be deleted when the browser window is closed.

A value of 0 deletes the cookie on the client.

Returns the maximum age in seconds for the cookie.

Sets the HttpOnly flag for the cookie.

Returns true iff the cookie’s HttpOnly flag is set.

Returns a string representation of the cookie, suitable for use in a Set-Cookie header.

Escapes the given string by replacing all non-alphanumeric characters with escape sequences in the form xx, where xx is the hexadecimal character code.

The following characters will be replaced with escape sequences:

- percent sign %
- less-than and greater-than < and >
- curly brackets { and }
- square brackets [ and ]
- parenthesis ( and )
- solidus /
- vertical line |
- reverse solidus (backslash /)
- quotation mark "
- apostrophe '
- circumflex accent ^
- grave accent `
- comma and semicolon , and ;
- whitespace and control characters

Unescapes the given string by replacing all escape sequences in the form xx with the respective characters.