Ich trainiere in Webentwicklung und lerne etwas über JSP & Servlets . Ich habe einige Kenntnisse über HttpSession
- ich habe es in einigen meiner Beispielprojekte verwendet.
In Browsern habe ich die Option "Cookies löschen" gesehen. Wenn ich die Cookies lösche, werden auch die gelöscht HttpSession
.
Sind Cookies und Sitzung gleich? Was sind die Unterschiede zwischen ihnen?
Antworten:
Sitzungen sind serverseitige Dateien, die Benutzerinformationen enthalten, während Cookies clientseitige Dateien sind, die Benutzerinformationen enthalten. Sitzungen haben eine eindeutige Kennung, die sie bestimmten Benutzern zuordnet. Diese Kennung kann in der URL übergeben oder in einem Sitzungscookie gespeichert werden.
Die meisten modernen Websites verwenden den zweiten Ansatz, bei dem die Kennung in einem Cookie gespeichert wird, anstatt sie an eine URL zu übergeben (was ein Sicherheitsrisiko darstellt). Sie verwenden diesen Ansatz wahrscheinlich, ohne es zu wissen, und durch Löschen der Cookies löschen Sie effektiv die übereinstimmenden Sitzungen, wenn Sie die in den Cookies enthaltene eindeutige Sitzungskennung entfernen.
quelle
Ein Cookie ist einfach eine kurze Textzeichenfolge, die zwischen dem Client und dem Server hin und her gesendet wird. Sie können
name=bob; password=asdfas
in einem Cookie speichern und dieses hin und her senden, um den Client auf der Serverseite zu identifizieren. Sie können sich dies als einen Austausch mit einem Bankangestellten vorstellen, der kein Kurzzeitgedächtnis hat und bei dem Sie sich für jede einzelne Transaktion ausweisen müssen. Natürlich ist die Verwendung eines Cookies zum Speichern dieser Art von Informationen schrecklich unsicher. Cookies sind ebenfalls in der Größe begrenzt.Wenn der Bankangestellte nun über sein / ihr Gedächtnisproblem Bescheid weiß, kann er / sie Ihre Informationen auf ein Blatt Papier schreiben und Ihnen eine kurze ID-Nummer zuweisen. Anstatt Ihre Kontonummer und Ihren Führerschein für jede Transaktion anzugeben, können Sie einfach "Ich bin Kunde 12" sagen.
Übersetzen auf Webserver: Der Server speichert die relevanten Informationen im Sitzungsobjekt und erstellt eine Sitzungs-ID, die er in einem Cookie an den Client zurücksendet. Wenn der Client das Cookie zurücksendet, kann der Server das Sitzungsobjekt einfach anhand der ID nachschlagen. Wenn Sie also das Cookie löschen, geht die Sitzung verloren.
Eine andere Alternative besteht darin, dass der Server das Umschreiben von URLs verwendet, um die Sitzungs-ID auszutauschen.
Angenommen, Sie hätten einen Link -
www.myserver.com/myApp.jsp
Sie könnten die Seite durchgehen und jede URL alswww.myserver.com/myApp.jsp?sessionID=asdf
oder sogar neu schreibenwww.myserver.com/asdf/myApp.jsp
und die Kennung auf diese Weise austauschen. Diese Technik wird vom Webanwendungscontainer ausgeführt und normalerweise durch Festlegen der Konfiguration für die Verwendung von Sitzungen ohne Cookies aktiviert.quelle
Cookies und Sitzungen speichern beide Informationen über den Benutzer (um die HTTP-Anforderung zustandsbehaftet zu machen). Der Unterschied besteht jedoch darin, dass Cookies Informationen auf der Clientseite (Browser) und Sitzungen Informationen auf der Serverseite speichern. Ein Cookie ist in dem Sinne eingeschränkt, dass es Informationen über eingeschränkte Benutzer und nur begrenzte Inhalte für jeden Benutzer speichert. Eine Sitzung ist nicht so begrenzt.
quelle
Viele Beiträge zu diesem Thread haben bereits ein Sequenzdiagramm zusammengefasst, um es auf andere Weise zu veranschaulichen.
Das ist auch ein guter Link zu diesem Thema, https://web.stanford.edu/~ouster/cgi-bin/cs142-fall10/lecture.php?topic=cookie
quelle
Cookie ist im Grunde ein globales Array, auf das über Webbrowser zugegriffen wird. Oft verwendet, um Werte zu senden / empfangen. Es fungiert als Speichermechanismus für den Zugriff auf Werte zwischen Formularen. Cookies können vom Browser deaktiviert werden, wodurch ihre Verwendung im Vergleich zur Sitzung eingeschränkt wird.
Sitzung kann als etwas zwischen Anmelden und Abmelden definiert werden. Die Zeit zwischen dem Anmelden und Abmelden des Benutzers ist eine Sitzung. Die Sitzung speichert Werte nur für die Sitzungszeit, dh vor dem Abmelden. Sitzungen werden verwendet, um die Aktivitäten des Benutzers zu verfolgen, sobald er sich angemeldet hat.
quelle
Google JSESSIONID . Dies erklärt, wie die Servlet-API zunächst das Umschreiben von URLs verwendet und dann, wenn Cookies aktiviert sind, Cookies zum Verwalten von Sitzungen.
HTTP ist zustandslos, daher muss der Client-Browser bei jeder Anforderung die ID seiner Sitzung an den Server senden. Der Server verwendet diese ID auf irgendeine Weise, um alle Daten für diese Sitzung abzurufen und sie für die Lebensdauer der Anforderung verfügbar zu machen.
quelle
Sitzung in Asp.net:
1. Pflegt die Daten in der gesamten Anwendung.
2.Hält die Daten aufrecht, wenn die aktuelle Sitzung aktiv ist. Wenn wir Daten benötigen, auf die von mehreren Controllern aus zugegriffen werden kann, können Sie in der Sitzung Daten speichern und abrufen.
3. Sitzungen sind serverseitige Dateien, die Benutzerinformationen enthalten. [Sitzungen sind eindeutige Bezeichner, die sie bestimmten Benutzern zuordnen.]
Übersetzen auf Webserver: Der Server speichert die relevanten Informationen im Sitzungsobjekt und erstellt eine Sitzungs-ID, die er in einem Cookie an den Client zurücksendet. Wenn der Client das Cookie zurücksendet, kann der Server das Sitzungsobjekt einfach anhand der ID nachschlagen. Wenn Sie also das Cookie löschen, geht die Sitzung verloren.
quelle
Cookie ist eine Möglichkeit, die Sitzung zwischen Client und Server zu implementieren. Auf diese Weise werden Sitzungsinformationen in Cookies gespeichert. Dies ist jedoch nicht die einzige Möglichkeit, die Sitzungsinformationen zu speichern. Eine andere Möglichkeit ist das Speichern von Sitzungsinformationen in der URL.
quelle
Cookies werden im Browser als Textdateiformat gespeichert. Es wird eine begrenzte Datenmenge gespeichert. Es sind nur 4 KB [4096 Byte] zulässig . Die Variable $ _ COOKIE enthält nicht mehrere Cookies mit demselben Namen
Wir können leicht auf die Cookies-Werte zugreifen. Es ist also weniger sicher. Die Funktion setcookie () muss VOR dem erscheinen
Etikett.
Sitzungen werden auf der Serverseite gespeichert. Es wird eine unbegrenzte Datenmenge gespeichert. Es enthält die Mehrfachvariablen in Sitzungen. Wir können nicht einfach auf die Cookie-Werte zugreifen. Es ist also sicherer .
Links: Unterschied zwischen Cookies und Sitzungen
quelle