Traitement des cookies en Python (1) Bibliothèque de cookies

黄舟
Libérer: 2016-12-23 17:30:32
original
1585 Les gens l'ont consulté

Les cookies sont utilisés par le serveur pour mettre en œuvre les sessions, la gestion de l'état lorsque les utilisateurs se connectent et les fonctions associées. Pour installer un cookie sur le navigateur de l'utilisateur, le serveur HTTP ajoute un en-tête HTTP similaire au suivant à la réponse HTTP :

Set-Cookie: session=8345234;expires=Sun, 15-Nov-2013 15 : 00h00 GMT ; path=/; domain=baidu.com

expire est le cycle de vie du cookie, path est le chemin valide du cookie et domain est le domaine valide du cookie. .

Chemin "chemin" "Utilisé pour définir le répertoire de niveau supérieur pouvant lire un cookie. La définition du chemin du cookie vers le répertoire de niveau supérieur de votre page Web permet à toutes les pages Web de ce répertoire d'accéder au cookie.

Méthode : Ajoutez path=/ à votre cookie ; Si vous souhaitez que seules les pages Web du répertoire "food" utilisent ce cookie, ajoutez path=/food.

domaine : Certains sites Web ont de nombreux petits noms de domaine. Par exemple, Baidu peut également avoir des pages Web sous les noms de domaine « news.baidu.com », « zhidao.baidu.com » et « v.baidu.com ». Si vous souhaitez que toutes les machines sous « baidu.com » puissent lire le cookie, vous devez ajouter « domain=.baidu.com » au cookie.

Le navigateur de l'utilisateur stockera le cookie jusqu'à son expiration, et le navigateur enverra un en-tête de requête HTTP similaire à celui-ci au serveur qui correspond au chemin et au domaine :

Cookie : session= 8345234.

Par exemple, lors de la connexion à www.baidu.com, le cookie dans l'en-tête de réponse HTTP renvoyé par le serveur Baidu est :

Set-Cookie:H_PS_PSSID=4681_4567_1452_9876_4759; /; domain=.baidu.com
Set-Cookie:BDSVRTM=74; path=/ 

En-tête de requête HTTP du navigateur :

Cookie:BAIDUID=0FD996SDFG12*** *** **107B9C227F4C:FG=1; bdshare_firstime=1384567418140; ID=468 1_4567_1452_9876_4759

Le navigateur renvoie le cookie Lors de l'utilisation du serveur HTTP, la forme de codage de chaîne clé = valeur est utilisée et les attributs facultatifs tels que l'expiration, le chemin et le domaine ne sont pas renvoyés.

La chaîne du cookie se trouve généralement dans la variable d'environnement HTTP_COOKIE et peut être lue comme suit :

import osPRint "Content-type: text/plainn"
if "HTTP_COOKIE" dans os .environ :
print os.environ["HTTP_COOKIE"]
else:
print "HTTP_COOKIE not set!"

Le module Cookie en Python (http.cookies en python3 ) fournit un objet spécial de type dictionnaire, SimpleCookie, qui stocke et gère une collection de valeurs de cookies appelée Morsel.

Chaque morceau a un nom, une valeur et des attributs facultatifs (expire, chemin, domaine, commentaire, âge maximum, sécurisé, version, http uniquement).

SimpleCookie peut utiliser la méthode output() pour créer une sortie de données de cookie sous la forme d'en-têtes HTTP, et la méthode js_output() pour générer une chaîne contenant du code javascript.

Générer un cookie avec HTTP_COOKIE :

cookie=Cookie.SimpleCookie(os.environ['HTTP_COOKIE'])
print cookie.output()

définir un cookie :

importer un cookie
importer datetime
importer aléatoire

expiration = datetime.datetime.now() datetime.timedelta(days=30)
cookie = Cookie .SimpleCookie()
cookie["session"] = random.randint(1,1000000000)
cookie["session"]["domain"] = ".baidu.com"
cookie["session "]["chemin"] = "/"
cookie["session"]["expires"] = expiration.strftime("%a, %d-%b-%Y %H:%M:%S PST")

print "Type de contenu : text/plain"
print cookie.output()
print
print "Cookie défini avec : " cookie.output()

Sortie :

Type de contenu : text/plain
Set-Cookie : session=155209565 ; Domaine=.jayconrod.com expires=Mon, 03-Mar-2014 07 : 42:47 PST ; Chemin =/Cookie défini avec : Set-Cookie : session = 155209565 ; Domaine = .jayconrod.com ; expire = Lun, 03 mars 2014

Ce qui précède est un cookie dans Traitement Python (1) Contenu de la bibliothèque de cookies, veuillez faire attention au site Web PHP chinois (www.php.cn) pour plus de contenu connexe !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal