Heim  >  Artikel  >  Backend-Entwicklung  >  Verarbeitung von Cookies in Python (1) Cookie-Bibliothek

Verarbeitung von Cookies in Python (1) Cookie-Bibliothek

黄舟
黄舟Original
2016-12-23 17:30:321537Durchsuche

Cookies werden vom Server verwendet, um Sitzungen, die Statusverwaltung bei der Benutzeranmeldung und damit verbundene Funktionen zu implementieren. Um ein Cookie im Browser des Benutzers zu installieren, fügt der HTTP-Server der HTTP-Antwort einen HTTP-Header ähnlich dem folgenden hinzu:

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

expires ist der Lebenszyklus des Cookies, path ist der gültige Pfad des Cookies und domain ist die gültige Domäne des Cookies .

Pfad „Pfad“ Wird zum Festlegen des Verzeichnisses der obersten Ebene verwendet, das ein Cookie lesen kann. Wenn Sie den Cookie-Pfad auf das oberste Verzeichnis Ihrer Webseite festlegen, können alle Webseiten in diesem Verzeichnis auf das Cookie zugreifen.

Methode: Fügen Sie path=/ zu Ihrem Cookie hinzu. Wenn Sie möchten, dass nur Webseiten im Verzeichnis „food“ dieses Cookie verwenden, fügen Sie path=/food hinzu.

domain: Einige Websites haben Viele kleine Domänennamen. Beispielsweise kann Baidu auch Webseiten unter den Domänennamen „news.baidu.com“, „zhidao.baidu.com“ und „v.baidu.com“ haben. Wenn Sie möchten, dass alle Maschinen unter „baidu.com“ das Cookie lesen können, müssen Sie „domain=.baidu.com“ zum Cookie hinzufügen.

Der Browser des Benutzers speichert das Cookie, bis es abläuft, und der Browser sendet einen HTTP-Anforderungsheader ähnlich dem folgenden an den Server, der dem Pfad und der Domäne entspricht:

Cookie: session= 8345234.

Beim Anmelden bei www.baidu.com lautet das Cookie im vom Baidu-Server zurückgesendeten HTTP-Antwortheader:

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

Browser-HTTP-Anforderungsheader:

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

Der Browser sendet das Cookie zurück. Bei Verwendung des HTTP-Servers wird die Codierungsform der Schlüssel=Wert-Zeichenfolge verwendet und optionale Attribute wie Ablaufdatum, Pfad und Domäne werden nicht zurückgegeben.

Der Cookie-String befindet sich normalerweise in der Umgebungsvariablen HTTP_COOKIE und kann wie folgt gelesen werden:

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

Das Cookie-Modul in Python (http.cookies in Python3 ) stellt ein spezielles wörterbuchähnliches Objekt SimpleCookie bereit, das eine Sammlung von Cookie-Werten namens Morsel speichert und verwaltet.

Jedes Morsel hat einen Namen, einen Wert und optionale Attribute (Ablaufdatum, Pfad, Domäne, Kommentar, maximales Alter, sicher, Version, nur http).

SimpleCookie kann die Methode „output()“ verwenden, um eine Cookie-Datenausgabe in Form von HTTP-Headern zu erstellen, und die Methode „js_output()“, um eine Zeichenfolge mit Javascript-Code zu generieren.

Cookie mit HTTP_COOKIE generieren:

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

Cookie setzen:

Cookie importieren
Datum/Uhrzeit importieren
zufällig importieren

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

print „Content-type: text/plain“
print cookie.output()
print
print „Cookie set with: „ + cookie.output()

Ausgabe:

Inhaltstyp: text/plain
Set-Cookie: session=155209565; Domain=.jayconrod.com; läuft ab=Mo, 3. März 2014 07:42:47 PST; Path=/Cookie gesetzt mit: Session=155209565; Domain=.jayconrod.com; läuft ab=Mo, 03.03.2014

Das Obige ist Python-Verarbeitung von Cookies (1) Inhalt der Cookie-Bibliothek. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Kapitel 5 Python-NummernNächster Artikel:Kapitel 5 Python-Nummern