Antwortinhalt:
Lassen Sie uns nicht über Sitzungen und Cookies in PHP sprechen. Werfen wir einen Blick darauf, was Sitzungen und Cookies in einem normalen Web sind.
Cookie ist eigentlich eine Technologie auf der Browserseite. Da HTTP selbst im Allgemeinen zustandslos ist, weiß der Server nicht, wer jedes Mal eine Anfrage stellt. Daher ermöglicht eine Websitzung die vorübergehende Speicherung einiger Inhalte auf dem Client durch set-cookie im HTTP-Header Diese Sitzung wird vom Inhalt des aktuellen Cookies begleitet (er wird nicht gesendet, wenn Cookies deaktiviert sind). Sitzungen werden hier im Allgemeinen durch Domänennamen definiert.
Aber Cookies haben zwei große Mängel: 1. Cookies werden auf der Clientseite gespeichert, sodass Cookies gelesen, missbraucht und geändert werden können. Das bedeutet, dass kritische Informationen, wie z. B. Anmeldeinformationen, die mithilfe von Cookies gespeichert werden, von anderen nach Belieben gelesen, gelöscht und geändert werden können. 2. Andere getarnte Websites können Ihren Cookie-Inhalt möglicherweise direkt abrufen.
Wie kann man also auf diese Informationen zugreifen, sodass es für den Client schwierig ist, Cookies nach Belieben zu löschen und andere Benutzer zu verschleiern? Im Allgemeinen gibt es zwei Haupttypen von Methoden: 1. Verschlüsseln Sie das Cookie. 2. Speichern Sie nur eine Signatur mit Selbstverifizierung im Cookie und speichern Sie dann die Schlüsseldaten auf der Serverseite. Dies ist die Sitzung.
Sitzung ist die Verwendung von Cookies. Die Verschlüsselung von auf dem Client gespeicherten Sitzungen ist am einfachsten zu implementieren und stellt keine zusätzliche Speicherbelastung für den Server dar. Sitzungen vieler neuer Mikro-Frameworks werden auf diese Weise implementiert (und nicht auf dem Server gespeichert). Die zweite Möglichkeit besteht darin, es auf dem Server zu speichern. Zu den optionalen Speicherorten gehören unter anderem Speicher, Dateien, externe Datenbanken usw.
Php verfügt über eine eigene Bibliothek. Das Hinzufügen von Cookies, die auf der Clientseite gespeichert werden müssen, zur Antwort bedeutet, dass dem Cookie eine Sitzungs-ID hinzugefügt und dann die Dinge gespeichert werden müssen, auf denen gespeichert werden muss standardmäßig in Form von Dateien auf den Server übertragen.
Moderne Browser unterstützen im Allgemeinen den Zugriff über das Frontend, sind aber nicht über das Backend verfügbar. Zweitens kann die Speichermenge viel größer sein. Drittens verfügt es über eine gewisse Fähigkeit, Low-End-Crawler zu verhindern. Wenn Sie die Kompatibilität mit alten Browsern nicht berücksichtigen müssen, wird eher empfohlen, localStorage zu verwenden, um das Front- und Back-End zu trennen und den localStorage-Inhalt (Sitzungs-ID oder verschlüsselter Speicherinhalt) über js in Form von Ajax anstelle von Cookies zu melden .
Cookie dient zum Speichern von Daten auf der Clientseite
Sitzung dient zum Speichern von Daten auf der Serverseite und der Client speichert nur eine ID
Der erste Stock hat es sehr gut ausgedrückt.
Tatsächlich besteht der größte Unterschied darin, dass das Cookie auf der Clientseite und die Sitzung auf der Serverseite vorhanden ist. Und im Allgemeinen hängt die Sitzung von der Sitzungs-ID im Cookie ab. Tatsächlich können Sie die Sitzungs-ID auch selbst festlegen und dann die Sitzungs-ID angeben, wenn Sie die Sitzung verwenden. Die Funktion der Sitzungs-ID besteht darin, die in der Sitzung gespeicherte Datei anzugeben, sodass Sie diesen Trick verwenden können, nachdem Cookies deaktiviert wurden.
Ein weiterer Punkt ist, dass Sitzungen in einer verteilten Architektur mit Vorsicht verwendet werden sollten, da Sitzungsdaten verloren gehen können. Natürlich können Sie die Sitzung auch so umschreiben, dass die Sitzung im Cache oder in der Datenbank gespeichert wird.
Sie können es so verstehen: Das Cookie ist die Box eines anderen und die Sitzung ist Ihre eigene Box. Welche Vorteile hat die Box? Sparen Sie etwas