Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen Cookies und Sitzungen in PHP und eine detaillierte Erklärung der Verwendung von Cookies und Sitzungen

Der Unterschied zwischen Cookies und Sitzungen in PHP und eine detaillierte Erklärung der Verwendung von Cookies und Sitzungen

怪我咯
怪我咯Original
2017-07-10 10:06:081156Durchsuche

Dieser Artikel stellt hauptsächlich den Unterschied zwischen Cookies und Sitzung in PHP sowie die relevanten Informationen zur Verwendung von Cookies und Sitzungen vor. Er ist sehr gut und hat Referenzwert >

Konkret werden Cookies auf dem „Client“ und Sitzungen auf dem „Server“ gespeichert

Cookies werden durch http erweitert Das vom Protokoll implementierte


Cookie umfasst hauptsächlich: Name, Wert, Ablaufzeit, Pfad und Domäne


Wenn das Cookie nicht mit einer

Lebensdauer festgelegt ist Zyklus, dann werden diese Cookies geschlossen, wenn der Browser geschlossen wird, und nicht auf der Festplatte Diese Cookies bleiben bis zum Ablauf der eingestellten Ablaufzeit gültig.

Sitzung speichert Informationen in einer Hash-Tabellen-ähnlichen Form.


Wenn das Programm eine Sitzung für die Anfrage eines Clients erstellen muss, prüft der Server zunächst, ob die Anfrage des Clients funktioniert Enthält es eine Sitzungskennung


(Sitzungs-ID genannt)? Wenn diese enthalten ist, bedeutet dies, dass für diesen Client bereits eine Sitzung erstellt wurde und der Server diese Sitzung abruft und entsprechend verwendet die Sitzungs-ID. (Wenn sie nicht abgerufen werden kann, wird eine neue erstellt.) Wenn die Client-Anfrage keine Sitzungs-ID enthält, erstellen Sie eine Sitzung für diesen Client und generieren Sie eine mit dieser Sitzung verknüpfte Sitzungs-ID Die Sitzungs-ID sollte ein Wert sein, der nicht wiederholt wird, und es ist nicht einfach, Muster zu finden, um die Zeichenfolge

zu fälschen. Diese Sitzungs-ID wird in dieser Antwort zur Speicherung zurückgegeben. Die Methode zum Speichern dieser Sitzungs-ID kann Cookies verwenden, sodass der Browser diese Identifikation während des Interaktionsprozesses automatisch gemäß den Regeln an den Server senden kann. Im Allgemeinen ähnelt der Name dieses Cookies SEEESIONID. Cookies können jedoch künstlich deaktiviert werden, und es müssen andere Mechanismen vorhanden sein, um die Sitzungs-ID trotzdem an den Server zurückzugeben, wenn Cookies deaktiviert sind.

Vorteile und Nachteile:
1. Cookie-Daten werden im Browser des Kunden gespeichert und Sitzungsdaten platziert auf dem Server-Vorgesetzten.


2. Cookies sind nicht sehr sicher. Andere können die lokal gespeicherten Cookies analysieren und sie täuschen.

Sitzung sollte aus Sicherheitsgründen verwendet werden.



3. Die Sitzung wird innerhalb eines bestimmten Zeitraums auf dem Server gespeichert. Wenn der Zugriff zunimmt, wird die Leistung Ihres Servers stärker beansprucht

Um die Serverleistung zu verringern, sollte COOKIE verwendet werden.


4. Die von einem einzelnen Cookie gespeicherten Daten dürfen 4 KB nicht überschreiten. Viele Browser beschränken die Speicherung auf bis zu 20 Cookies.


5. Persönlicher Vorschlag:

Wichtige Informationen wie Anmeldeinformationen als SITZUNG speichern


Wenn andere Informationen aufbewahrt werden müssen, kann dies der Fall sein platziert in COOKIE

Zusammenfassung der Verwendung von Sitzung und Cookies:
Sitzung und Cookies sind beide in

asp. Net

Was die Unterschiede zwischen integrierten Objekten betrifft, werde ich hier nicht auf Details eingehen. Lassen Sie uns nun über einige praktischere Dinge sprechen:
Wir wissen, dass Websites über ein Backend-Verwaltungssystem verfügen , einschließlich Anmelden und Beenden der beiden Funktionen, speichern wir beim Anmelden häufig die Benutzerinformationen in der Sitzung oder im Cookie für die spätere Verwendung. Worauf sollten wir beim Anmelden achten?


1. Speichern Sie einige vertrauliche Dinge in der Sitzung oder Cookies. Beispielsweise sind Benutzernamen nicht sehr vertraulich, aber einige Browser unterstützen die Verwendung von Cookies. Wir speichern es also in der Sitzung, aber die Sitzung geht manchmal leicht auf dem Server verloren, sodass wir es in Verbindung mit Cookies verwenden können, d. h. wenn die Sitzung verloren geht, wenn das Cookie noch innerhalb der von uns festgelegten Gültigkeitsdauer liegt Darin können Sie den Wert noch einmal aus dem Cookie herausnehmen und in die Sitzung einfügen, daher verwenden wir besser Sitzung und Cookie, um den Benutzernamen und andere Informationen gleichzeitig oder in der

Konfigurationsdatei

Der Code lautet wie folgt:

kann auch verwendet werden, um das Problem des Sitzungsverlusts zu lösen

<sessionState timeout="2" mode="StateServer" />

2. Wir hoffen, dass der Hintergrund Das Management macht die Sitzung ungültig und meldet sich erneut an, wenn über einen längeren Zeitraum kein Vorgang ausgeführt wird. Verwenden Sie session.timeout = 5 in Minuten. Dies bedeutet, dass der Vorgang ungültig ist, wenn innerhalb von 5 Minuten kein anderer Vorgang ausgeführt wird Konfigurieren Sie 8d16a282d6b1276845bbebf466ffd687 in der Konfigurationsdatei

Einstellen der Cookie-Gültigkeitsdauer

httpCookie.Expires = DateTime.Now.AddMinutes(2);

Die Cookie-Gültigkeitsdauer beträgt 2 Minuten

4 Bei der Beurteilung, ob Sie die Berechtigung zum Zugriff auf die Webseite haben, können Sie beurteilen wie folgt:

if (Request.Cookies["httpCookie"] != null)
{
Session["admin"] = Request.Cookies["httpCookie"].Values["admin"].ToString();
}
if (Session["admin"] == null)
{
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert(&#39;请重新登 录&#39;);location.href=&#39;logins.aspx&#39;</script>");
}
Im Folgenden geht es um das Beenden Was sollte besser gemacht werden

Die Werte von Sitzung und Cookie sollten beim Beenden gelöscht werden. Lassen Sie uns nun kurz über die Unterschiede zwischen verschiedenen Sitzungsmethoden sprechen:

Session.clear(): bedeutet, dass alle Sitzungsschlüsselwerte in der Sitzung gelöscht werden, die Sitzung jedoch weiterhin vorhanden ist, äquivalent zu Session.RemoveAll()

Session["admin"] =null: Zeigt an, dass der Wert des angegebenen Schlüssels gelöscht und freigegeben wird. Er unterscheidet sich von session["admin"]=". Er wird gelöscht, aber die Sitzung wird nicht freigegeben. Er entspricht session.Remove(. "name");

Session.Abandon() löscht das aktuelle Session-Objekt und es wird beim nächsten Mal eine neue Session sein.

Der Hauptunterschied besteht darin, dass bei Verwendung von Session.Abandon die Session_End-Methode (im InProc-Modus) aufgerufen wird. Die Session_Start-Methode wird ausgelöst, wenn die nächste Anfrage eintrifft. Session.Clear löscht nur alle Daten in der Sitzung und beendet die

Sitzung, daher werden diese Methoden nicht aufgerufen, um die Sitzung aktiv zu beenden aufgerufen, wenn Nach Ablauf der Sitzung wird auch die aktuelle Sitzung automatisch beendet.

2. Schauen wir uns an, wie man Cookies löscht

A. tpCookie cookie = System.Web.HttpContext.Current.Request. Cookies .Get("tuser");

cookie.Expires = DateTime.Now.AddDays(-1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);

B. tpCookie httpCookie = Request.Cookies["httpCookie"];

httpCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(httpCookie) ;

Beide Methoden AB können verwendet werden

3. Löschen Sie also einfach den aktuellen Wert der Sitzung, also Session["admin'. ]=null Das ist es. Cookies können gemäß der oben genannten Methode gelöscht werden

Vorschläge und Kommentare:

1 Erstellen Sie eine Es ist besser, die Zeit auf der Abmeldeseite zu schreiben

2. Egal welcher Vorgang ausgeführt wird, wenn Sie If verwenden können, um zu beurteilen, ob es null ist, versuchen Sie Ihr Bestes, um es zu beurteilen um das Auftreten einer Nullzeigerausnahme zu verhindern

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Cookies und Sitzungen in PHP und eine detaillierte Erklärung der Verwendung von Cookies und Sitzungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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