Yurttas/PL/SL/python/docs/core-python-programming/doc/20/lib/module-Cookie.html
Jump to navigation
Jump to search
11.17 Cookie -- HTTP state management
The Cookie module defines classes for abstracting the concept of cookies, an HTTP state management mechanism. It supports both simplistic string-only cookies, and provides an abstraction for having any serializable data-type as cookie value.
The module formerly strictly applied the parsing rules described in in the RFC 2109
] and RFC 2068
] specifications. It has since been discovered that MSIE 3.0x doesn't follow the character rules outlined in those specs. As a result, the parsing rules used are a bit less strict.
- CookieError
- Exception failing because of RFC 2109
] invalidity: incorrect attributes, incorrect Set-Cookieheader, etc.
- BaseCookie ([input])
- This class is a dictionary-like object whose keys are strings and whose values are Morsels. Note that upon setting a key to a value, the value is first converted to a Morsel containing the key and the value. If input is given, it is passed to the load method.
- SimpleCookie ([input])
- This class derives from BaseCookie and overrides value_decode and value_encode to be the identity and str() respectively.
- SerialCookie ([input])
- This class derives from BaseCookie and overrides value_decode and value_encode to be the pickle.loads() and pickle.dumps. Do not use this class. Reading pickled values from a cookie is a security hole, as arbitrary client-code can be run on pickle.loads(). It is supported for backwards compatibility.
- SmartCookie ([input])
- This class derives from BaseCookie. It overrides value_decode to be pickle.loads() if it is a valid pickle, and otherwise the value itself. It overrides value_encode to be pickle.dumps() unless it is a string, in which case it returns the value itself. The same security warning from SerialCookie applies here.
See Also:
- RFC 2109, HTTP State Management Mechanism
] - This is the state management specification implemented by this module.
Subsections
See About this document... for information on suggesting changes.