Dieser Artikel bietet Ihnen eine Zusammenfassung der Unterschiede zwischen Cookies und Sitzungen. Ich hoffe, dass er für Freunde in Not hilfreich ist.
Zustandsloses HTTP-Protokoll
Zustandsloses HTTP-Protokoll bedeutet, dass das Protokoll keine Speicherkapazität für die Transaktionsverarbeitung hat. Das Fehlen eines Status bedeutet, dass, wenn für die nachfolgende Verarbeitung die vorherigen Informationen erforderlich sind, diese erneut übertragen werden müssen, was zu einer Erhöhung der pro Verbindung übertragenen Datenmenge führen kann. Andererseits reagiert der Server schneller, wenn er keine vorherigen Informationen benötigt. EinführungNach dem Aufkommen von Webanwendungen, in denen Clients und Server dynamisch interagieren,
die zustandslosen Eigenschaften von HTTP erschweren die Implementierung dieser Anwendungen erheblich. Schließlich muss die Interaktion die Vergangenheit und die Vergangenheit verbinden Die Zukunft. Einfach Das Warenkorbprogramm muss auch wissen, welche Produkte der Benutzer zuvor ausgewählt hat. Infolgedessen entstanden zwei Technologien zur Aufrechterhaltung des HTTP-Verbindungsstatus, eine ist Cookie und die andere ist Sitzung. HTTP selbst ist ein zustandsloses Verbindungsprotokoll. Um die Interaktion zwischen dem Client und dem Server zu unterstützen, müssen wir verschiedene Technologien verwenden, um den Status für die Interaktion zu speichern, und diese verschiedenen Technologien sind Cookie und Sitzung. Cookies sind eine Lösung zur Aufrechterhaltung des Status über den Client. Per Definition handelt es sich bei Cookies um spezielle Informationen, die vom Server an den Client gesendet werden. Diese Informationen werden auf dem Client in Form vonEntwicklungTextdateien gespeichert und der Client sendet sie dann jedes Mal, wenn er sie sendet eine Anfrage an den Server. Bringen Sie diese besonderen Nachrichten mit. Lassen Sie uns genauer sein: Wenn ein Benutzer einen Browser verwendet, um auf eine Website zuzugreifen, die Cookies unterstützt, gibt der Benutzer persönliche Informationen einschließlich des Benutzernamens an und übermittelt diese an den Server. Anschließend sendet der Server den entsprechenden Hypervisor an den Client zurück Zusammen mit dem Text werden auch persönliche Informationen zurückgesendet diese Informationen werden nicht im HTTP-Antworttext (Antworttext) , , sondern im HTTP gespeichert Antwort-Header. (Antwort-Header) ; Wenn der Client-Browser die Antwort vom Server empfängt, speichert der Browser die Informationen an einem einheitlichen Ort. Für Windows-Betriebssysteme können wir beginnen: [Systemdatenträger] :Dokumente und Einstellungen[Benutzername] Das gespeicherte Cookie befindet sich im Cookies-Verzeichnis. Wenn der Client eine Anfrage an den Server sendet, wird das entsprechende Cookie erneut an den Server zurückgesendet. Diesmal werden die Cookie-Informationen im HTTP-Anfrageheader (Request Header) gespeichert. kursiver Text
Durch die Implementierung von Technologien wie Cookies kann der Server, nachdem er eine Anfrage vom Client-Browser erhalten hat, clientspezifische Informationen erhalten, indem er das im Anfrageheader gespeicherte Cookie analysiert und so dynamisch Informationen dazu generiert der dem Kunden entsprechende Inhalt. Normalerweise können wir auf der Anmeldeoberfläche vieler Websites Optionen wie „Bitte merken“ sehen. Wenn Sie dies vor dem Anmelden überprüfen, müssen Sie beim nächsten Besuch der Website keine wiederholten und umständlichen Anmeldungen durchführen Diese Funktion wird durch Cookie implementiert.CookieEine zu Cookie entgegengesetzte Lösung ist Session, die den Status über den Server verwaltet. Da das Wort Session viele Semantiken enthält, muss hier die Bedeutung von Session geklärt werden. Zunächst übersetzen wir normalerweise Sitzung in Sitzung , , damit wir eine Reihe interaktiver Aktionen zwischen dem Client-Browser und dem Server als Sitzung bezeichnen können. Ausgehend von dieser Semantik erwähnen wir die Dauer der Sitzung, welche Vorgänge während der Sitzung ausgeführt werden usw. Zweitens bezieht sich Sitzung auf den vom Server für den Client geöffneten Speicherplatz und die darin gespeicherten Informationen Status aufrechtzuerhalten. Ausgehend von dieser Semantik werden wir erwähnen, welche Inhalte in der Sitzung gespeichert werden sollen, wie man basierend auf dem Schlüsselwert passende Inhalte aus der Sitzung erhält usw.
Um Session zu nutzen, besteht der erste Schritt natürlich darin, eine Session zu erstellen. Wann wird die Sitzung erstellt? Natürlich wird es erstellt, während das serverseitige Programm ausgeführt wird. In verschiedenen Sprachen implementierte Anwendungen haben unterschiedliche Methoden zum Erstellen einer Sitzung. In Java wird es durch Aufrufen der getSession-Methode von HttpServletRequest erstellt (unter Verwendung von true als Parameter). . Beim Erstellen einer Sitzung generiert der Server eine eindeutige Sitzungs-ID. Diese Sitzungs-ID wird verwendet, um die erstellte Sitzung in nachfolgenden Anforderungen wiederherzustellen. Nachdem die Sitzung erstellt wurde, können Sie die sitzungsbezogene Methode zum Hinzufügen von Inhalten aufrufen zur Sitzung, und diese Inhalte werden nur auf dem Server gespeichert und nur die Sitzungs-ID wird an den Client gesendet. Wenn der Client erneut eine Anfrage sendet, wird diese Sitzungs-ID angezeigt und der Server findet die entsprechende Sitzung basierend auf die Sitzungs-ID und verwenden Sie sie erneut. Durch einen solchen Prozess bleibt der Status des Benutzers erhalten.
Zusammenfassend lässt sich sagen, dass HTTP selbst ein zustandsloses Verbindungsprotokoll ist. Um die Interaktion zwischen dem Client und dem Server zu unterstützen, müssen wir verschiedene Technologien verwenden, um den Status für die Interaktion zu speichern Cookies und Sitzungen.
Speicherort
Cookie-Daten werden imBrowser gespeichert und der Server kann die Informationen kennen VerwendungWenn vorhanden Im Browser
ist keine Ablaufzeit festgelegt , das Cookie wird im Speicher gespeichert und der Lebenszyklus endet, wenn der Browser geschlossen wird . Diese Art von Cookie ist wird als Sitzungscookie bezeichnet. Wenn im Browser die Cookie-Ablaufzeitgespeicherten Daten dürfen 4 KB nicht überschreiteneingestellt ist , wird das Cookie auf der Festplatte gespeichert. Nach dem Schließen des Browsers bleiben die Cookie-Daten bis zum Ablaufzeit. Es verschwindet erst, wenn es abgelaufen ist. Speicher
Die von einem einzelnen Cookie
Ein Server kann bis zu 20 Cookies im Client-Browser speichern, und ein Browser kann Speichern Sie bis zu 300 Cookies; Cookies können nur Zeichenfolgentypen speichern, in Form von Text
AnwendungsszenarienDie Cookie-Technologie besteht aus 4 Komponenten: im HTTP Antwortbericht Der Artikel enthält eine Cookie-Headerzeile. In der HTTP-Anforderungsnachricht wird eine Cookie-Datei gespeichert, die vom Browser des Benutzers verwaltet wird Website
Stellen Sie fest, ob sich der Benutzer auf der Website angemeldet hat, damit bei der nächsten Anmeldung eine automatische Anmeldung (oder das Speichern des Kennworts) erfolgen kann.
Wenn wir Cookies löschen, müssen die entsprechenden Anmeldeinformationen bei jedem Login erneut eingegeben werden.
Speichern Sie die letzte Anmeldezeit und andere Informationen. Speichern Sie die zuletzt angezeigte Seite. Durchsuchen Sie die Anzahl der BesucheWenn der Pfadparameter im Cookie festgelegt ist, können Cookies unter verschiedenen Pfaden auf derselben Website nicht aufeinander zugreifen.
NachteileBegrenzte Größe, Benutzer können Cookies bedienen (deaktivieren), was zu eingeschränkter Funktionalität und geringer Sicherheit führt. Einige Zustände können nicht jedes Mal auf dem Client gespeichert werden. Jeder Zugriff erfordert das Senden Cookies werden an den Server gesendet, was Bandbreite verschwendet. Cookie-Daten haben das Konzept eines Pfads, und Cookies können darauf beschränkt werden, nur zu einem bestimmten Pfad zu gehören.
Andere
Cookie für Datenanfrage übertragen
Cookie-Daten werden in der HTTP-Anfrage immer vom gleichen Ursprung übertragen (auch wenn sie nicht benötigt werden), also vom Cookie wird zwischen dem Browser und dem Server hin- und hergereicht ;
Jedes Mal, wenn eine neue Seite angefordert wird, wird das Cookie gesendet, was Bandbreite verschwendet. Darüber hinaus muss das Cookie einen Bereich angeben und kann nicht domänenübergreifend aufgerufen werden.
Sitzungsdaten werden auf dem Server abgelegt. Der Client kennt die Informationen nicht, aber die Sitzung kann auf spezielle Weise dauerhaft verwaltet werden (Memcache). , redis);Nutzung
Wenn die Sitzung erstellt wird und Sitzungskonsistenzprobleme auftreten
Die Sitzung wird innerhalb eines bestimmten Zeitraums beim Zugriff gespeichert Es nimmt mehr Leistung Ihres Servers in Anspruch. Um die Serverleistung zu verringern, sollten Cookies verwendet werden.
Wenn das Programm eine Sitzung für die Anfrage eines Clients erstellen muss, prüft dies zuerst die Anfrage des Clients Ob eine Sitzungskennung (Sitzungs-ID genannt) eingefügt wurde Wenn sie eingefügt wurde, bedeutet dies, dass bereits eine Sitzung für diesen Client und den Server erstellt wurde wird diese Sitzung entsprechend der Sitzungs-ID verwenden. Verwenden Sie , um sie abzurufen (wenn nicht abgerufen werden kann, wird eine neue erstellt. Wenn die Client-Anfrage keine Sitzungs-ID enthält). Für den Client wird eine Sitzung erstellt und eine mit dieser Sitzung verknüpfte Sitzungs-ID generiert. Der Wert der Sitzungs-ID sollte eine Zeichenfolge sein, die sich weder wiederholt noch leicht zu imitieren ist Die ID wird in dieser Antwort zur Speicherung an den Client 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. Normalerweise wird ein Cookie verwendet, um die Sitzungs-ID an den Client zu speichern. Während der Interaktion sendet der Browser die Sitzungs-ID gemäß den Regeln an den Server. Wenn der Benutzer Cookies deaktiviert, muss die URL-Umschreibung verwendet werden, was über „response.encodeURL(url)“ erreicht werden kann. Das Ende der API für „encodeURL“ besteht darin, dass die URL keine Verarbeitung durchführt, wenn der Browser Cookies unterstützt. Wenn der Browser Cookies nicht unterstützt, wird die URL neu geschrieben und die SessionID mit der Zugriffsadresse verknüpft.Speicher
Es gibt keine Begrenzung für die Größe
Sitzung
Was in der Sitzung gespeichert wird, ist das Objekt. Die Sitzung wird über Daten gespeichert Struktur ähnlich wie Hashtable, die jeden Objekttyp unterstützen kann (Sitzung kann mehrere Objekte enthalten)
AnwendungsszenarioSitzung wird verwendet, um die privaten Informationen jedes Benutzers zu speichern. Der Wert der Variablen wird auf der Serverseite gespeichert , und verschiedene Kunden werden durch SessionID unterschieden.
Warenkorb im Online-Einkaufszentrum
Das obige ist der detaillierte Inhalt vonZusammenfassung der Unterschiede zwischen Cookies und Sitzungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!