11.17 Cookie -- Gestión de estado HTTP

El módulo Cookie define clases para abstraer el concepto de las cookies, un mecanismo de gestión de estado HTTP. Da soporte a cookies de tipo texto simple y proporciona una abstracción para gestionar cualquier tipo de dato serializable como valor de un cookie.

El módulo aplicaba en el pasado estrictamente las reglas de análisis descritas en RFC 2109 y RFC 2068. Posteriormente, se descubrió que MSIE 3.0x no sigue las reglas de carácter descritas en las especificaciones mencionadas. A resultas de esto, se relajaron las reglas de análisis.

CookieError
Excepción que se lanza como resultado de una incorrección de RFC 2109: atributos incorrectos, cabecera Set-Cookie incorrecta, etc.

BaseCookie ([input])
Esta clase es un objeto análogo a un diccionario cuyas claves son cadenas y cuyos valores son Morsels. Obsérvese que al asignar el valor correspondiente a una clave, se convierte el valor a un Morsel que contiene la clave y el valor.

Si se proporciona input, se le pasa al método load.

SimpleCookie ([input])
Esta clase se deriva de BaseCookie y redefine value_decode y value_encode con los valores identidad y str() respectivamente.

SerialCookie ([input])
Esta clase se deriva de BaseCookie y redefine value_decode y value_encode con los valores pickle.loads() y pickle.dumps.

No se debe utilizar esta clase. Leer valores estibados (pickled) a partir de una cookie supone un agujero de seguridad, ya que se puede ejecutar código arbitrario del cliente en pickle.loads(). Sólo se mantiene por compatibilidad.

SmartCookie ([input])
Esta clase se deriva de BaseCookie. Redefine value_decode a pickle.loads() si es un valor estibado válido, o al propio valor en caso contrario. Redefine value_encode a pickle.dumps() salvo que sea una cadena, en cuyo caso devuelve la propia cadena.

En este caso se advierte lo mismo que en SerialCookie en cuanto a riesgos de seguridad.

Más informació en:

RFC 2109, Mecanismo de gestión de estado HTTP
Ésta es la especificación de la gestión de estado implementada por el módulo.


Subsections

Ver Sobre este documento... para obtener información sobre sugerencias.