You should know that besides the name and value attribute,
user agents will send at most the path, domain and port and
usually will not send them at all.

For interoperability, cookies are set using version 0 (by
Netscape) unless version 1 (RFC 2965 and the older RFC 2109)
fields are set. While version 0 is well supported by browsers,
RFC 2109 requires a recent browser and RFC 2965 is usually not
supported. You do not have to worry however, cookies are always
sent in such a way older browsers understand them -- albeit not
all attributes of course -- so your application can be ready for
the time RFC 2965 will be the norm.

set_max_age c (Some t) sets the lifetime of the cookie c
to t seconds. If t <= 0, it means that the cookie should
be discarded immediately. set_expires c None tells the
cookie to be discarded when the user agent exits. (Despite
the fact that the name is borrowed from the version 1 of the
specification, it works transparently with version 0.)

set_comment c s sets the comment of the cookie c to s
which must be UTF-8 encoded (RFC 2279). Because cookies can
store personal information, the comment should describe how
the cookie will be used so the client can decide whether to
allow the cookie or not. To cancel a comment, set it to "".

set ports c (Some p) says that the cookie c must only be
returned if the server request comes from one of the listed
ports. If p = [], the cookie will only be sent to the
request-port it was received from. set_ports c None says
that the cookie may be sent to any port.