0. Einführung, warum brauchen wir Cookies und Sitzungen
Da HTTP -Anforderungen staatsfreundlich sind (der Anmeldestatus des Benutzers kann nicht aufgezeichnet werden usw.), ist ein bestimmter Mechanismus erforderlich, um den Anmeldestatus des Benutzers und andere Informationen zu speichern. Wenn Sie das nächste Mal auf den Webdienst zugreifen, müssen Sie nicht überprüfen, ob Sie sich erneut anmelden oder einen anderen Status anmelden sollen. Der Sitzungsmechanismus und der Cookie -Mechanismus sind Lösungen auf dem Server und der Browserseite.
1. Über Kekse
1.1 Was ist ein Keks?
Keks, Original bedeutet Kekse. Es wird verwendet, um die Nutzungsstatusinformationen auf der Browserseite zu speichern und diesen Teil der Informationen beim Zugriff auf das Backend wieder zum Backend zu bringen.
Der Inhalt von Cookies enthält hauptsächlich: Name, Wert, Ablaufzeit, Pfad und Domäne
1.2 Kategorie von Keksen
Session Cookies Cookies, die keine Ablaufzeit festlegen, werden im Speicher des Browsers gespeichert. Wenn der Browser geschlossen ist, werden die Kekse zerstört. (oft als Sitzung verwendet)
Normale Cookies setzen die Ablaufzeit und speichern sie auf der Festplatte
1.3 Wie man sich bewerbt
Bei der Initiierung einer Anfrage: Der Browser überprüft alle gespeicherten Cookies. Wenn der von einem Cookie deklarierte Aktionsumfang (vom Pfad und der Domäne festgelegte Domäne) größer oder gleich dem Standort der zu fordernden Ressource ist, ist das Cookie an den HTTP -Anforderungsheader der Anforderungsressource beigefügt und an den Server gesendet.
Bei der Verarbeitung von Anforderungen: Auf der Serverseite werden die im Anforderungsheader enthaltenen Cookie -Informationen im Allgemeinen überprüft (z. B. Anmeldeprüfung). Wenn der Scheck bestanden wird, kann die tatsächliche Geschäftsabwicklung durchgeführt werden.
Wenn die Überprüfung fehlschlägt, z. B. das Finden des Cookie- oder der Cookie -Informationen nicht falsch (möglicherweise geschmiedet), wenden Sie sich an die Anmeldung und geben Sie die Cookie -Informationen nach dem Anmelden in der Antwort zurück. Der Browser speichert es auf der Festplatte oder dem Speicher auf der Grundlage der zurückgegebenen Cookie -Informationen für die nächste Verwendung. Anwesend
2. Über Sitzung
2.1 Was ist Sitzung
Die Sitzung wird verwendet, um Benutzerstatusinformationen auf der Serverseite zu speichern.
2.2 Wie man benutzt
Wenn der Browser eine Anfrage initiiert: Der Server liest zuerst die Sitzungsinformationen im Anforderungsheader. Wenn die Sitzungsinformationen nicht gefunden werden oder die Sitzung nicht lokal abgerufen werden kann, wird eine neue SessionID generiert und in der Server -Festplatte oder Memcache gespeichert.
Der Browser erhält eine Antwort: Die zurückgegebene Sitzung wird in lokalem Speicher gespeichert, um sie bei der nächsten Anfrage zu verwenden. Eine der Implementierungen der vor Ort gespeicherten Sitzung besteht darin, Informationen über Cookies zu sparen. Tatsächlich sind Cookies jedoch nicht die einzige Lösung, um Sitzungen zu sparen. Es ist auch möglich, URL -Umschreiben zu verwenden (die Sitzungs -ID direkt hinter dem URL -Pfad anhängen).
3. Die Hauptunterschiede zwischen Cookies und Sessiond
1. Es gibt einen kleinen Unterschied in der Speicherstelle
Cookie -Daten werden im Browser des Clients gespeichert und müssen nicht auf der Serverseite gespeichert werden. Die Sitzungsdaten werden auf dem Server platziert und es gibt auch eine Kopie des lokalen Speichers.
2. Verschiedene Sicherheit
Cookies sind nicht so sicher wie die Sitzung. Da gewöhnliche Cookies auf der lokalen Festplatte gespeichert werden, können Hacker XS -Angriffe starten, indem sie URLs und andere Mittel erstellen, um Cookies in der lokalen Festplatte gespeichert zu werden, und dann sensible Informationen der Benutzer stehlen.
Sitzung ist anders. Nur wenn ein XSS -Angriff gestartet wird, wenn sich ein Benutzer in dieser Website anmeldet, können die Sitzungsinformationen erhalten werden. Nach dem Schließen des Browsers wird die Sitzung zerstört. Die Sicherheit ist besser als Cookies.
3.. Unterschiede in der Cross-Domänen-Unterstützung
Cookies unterstützt den Zugang zum Cross-Domänen. Wenn das Domain -Attribut beispielsweise auf ".biaodianfu.com" gesetzt ist, können alle Domain -Namen mit dem Suffix ".biaodianfu.com" auf das Cookie zugreifen. Cross-Domänen-Cookies werden jetzt im Internet weit verbreitet, wie Google, Baidu, Sina usw. Die Sitzung unterstützt keinen Cross-Domain-Zugriff. Die Sitzung ist nur innerhalb des Domain -Namens gültig, in dem er sich befindet.
4. Der Unterschied im Serverdruck
Die Sitzung wird auf der Serverseite gespeichert und jeder Benutzer generiert eine Sitzung. Wenn es viele Benutzer gibt, die gleichzeitig zugreifen, generiert es viele Sitzungen und verbraucht viel Speicher. Daher ist es unwahrscheinlich, dass Websites wie Google, Baidu und Sina mit extrem hohen gleichzeitigen Besuchen mithilfe von Sitzungen verfolgt werden können. In Anbetracht der Reduzierung der Serverleistung sollte Cookie verwendet werden.
5. Verschiedene Zugriffsmethoden
ASCII -Saiten können nur in Keksen gespeichert werden. Wenn Unicode -Zeichen oder binäre Daten erforderlich sind, ist zuerst eine Codierung erforderlich. Java -Objekte können nicht direkt in Cookies zugegriffen werden. Um leicht komplexe Informationen zu speichern, ist die Verwendung von Cookies ziemlich schwierig.
Die Sitzung kann auf jede Art von Daten zugreifen, einschließlich, aber nicht beschränkt auf String, Ganzzahl, Liste, Karte usw. In der Sitzung können Java -Bohnen und sogar alle Java -Klassen, Objekte usw. direkt gespeichert werden, was sehr einfach zu bedienen ist. Sie können sich eine Sitzung als Java -Containerklasse vorstellen.
6. Die Größe der Kekse ist begrenzt
Die von einem einzelnen Cookie gespeicherten Daten können 4K nicht überschreiten, und viele Browser beschränken eine Site auf bis zu 20 Cookies.
Das obige einfache Verständnis von Sitzung und Cookies ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.