it-swarm.com.de

Was ist der Unterschied zwischen einer Sitzung und einem Cookie?

Was ist der Unterschied zwischen einer Sitzung und einem Cookie?

Welche Umstände sollten jeweils verwendet werden?

32
EvilBoy

Sitzungen 

Sitzungen werden pro Benutzer im Arbeitsspeicher (oder alternativ Sitzungsstatus ) auf dem Server gespeichert. Sitzungen verwenden ein Cookie (Sitzungsschlüssel), um den Benutzer an die Sitzung zu binden. Dies bedeutet, dass keine "sensiblen" Daten im Cookie auf dem Computer des Benutzers gespeichert werden. 

Sitzungen werden im Allgemeinen verwendet, um den Status zu erhalten, wenn Sie durch eine Website navigieren. Sie können jedoch auch verwendet werden, um häufig aufgerufene Objekte aufzunehmen. Nur wenn der Session-Status auf InProc gesetzt ist, wenn auf einen anderen Session-State-Modus gesetzt, muss das Objekt auch serialisierbar sein.

Session["userName"] = "EvilBoy";

if(Session["userName"] != null)
  lblUserName.Text = Session["userName"].ToString();

Kekse

Cookies werden pro Benutzer auf dem Computer des Benutzers gespeichert. Ein Cookie ist in der Regel nur eine Information. Cookies werden in der Regel für einfache Benutzereinstellungen verwendet. In keinem Cookie sollten sensible Informationen gespeichert werden. 

Sie können sich nie ganz darauf verlassen, dass ein Cookie von einem Benutzer oder einer externen Quelle nicht manipuliert wurde. Wenn die Sicherheit jedoch ein großes Problem darstellt und Sie Cookies verwenden müssen, können Sie Ihre Cookies entweder verschlüsseln oder festlegen, dass nur Cookies über SSL übertragen werden. Ein Benutzer kann seine Cookies jederzeit löschen oder Cookies insgesamt nicht zulassen. Sie können sich also nicht darauf verlassen, dass sie gerade da sind, nur weil ein Benutzer Ihre Website in der Vergangenheit besucht hat.

//add a username Cookie
Response.Cookies["userName"].Value = "EvilBoy";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(10);
//Can Limit a cookie to a certain Domain
Response.Cookies["domain"].Domain = "Stackoverflow.com";

//request a username cookie
if(Request.Cookies["userName"] != null)
   lblUserName.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);

Randnotiz

Erwähnenswert ist, dass ASP.NET auch die Zustandsverwaltung cookieless unterstützt

56
cgreeno

Cookie ist eine clientseitige Speicherung Ihrer Variablen. Sie wird vom Browser physisch auf dem Client-Computer gespeichert. Der Umfang ist maschinenweit. Verschiedene Benutzer auf demselben Computer können dasselbe Cookie lesen.

Deswegen :

  1. Sie sollten keine sensiblen Daten in einem Cookie speichern. 
  2. Sie sollten keine Daten speichern, die zu einem Benutzerkonto gehören.
  3. Das Cookie hat keine Auswirkungen auf die Serverressourcen.
  4. Das Cookie verfällt zu einem von Ihnen festgelegten Datum.

Session ist eine serverseitige Speicherung Ihrer Variablen. Standardmäßig wird es im Arbeitsspeicher des Servers gespeichert. Sie können es jedoch konfigurieren, um es auf SqlServer zu speichern. Es ist Browser-weit. Derselbe Benutzer kann zwei oder mehr Browser ausführen, und jeder Browser hat eine eigene Sitzung.

Deswegen : 

  1. Sie können vertrauliche Daten in einer Sitzung speichern.
  2. Sie sollten nicht alles in einer Sitzung speichern. es ist Verschwendung von Serverressourcen.
  3. Nachdem der Benutzer den Browser geschlossen hat, löscht das Sitzungszeitlimit alle Informationen. (Standard ist 20 Minuten)
13
Canavar

Ein Cookie ist eine Identifizierungsnummer, die von einem Server (der über eine Domäne verfügt) im Browser des Benutzers gespeichert wird, der den Server/die Domäne besucht.

Eine Sitzung ist eine Einheit von möglicherweise Variablen, Status und Einstellungen, während ein bestimmter Benutzer in einem bestimmten Zeitraum auf einen Server/eine Domäne zugreift. Alle Sitzungsinformationen werden im traditionellen Modell auf dem Server gespeichert (!).

Da viele gleichzeitige Benutzer einen Server/eine Domäne gleichzeitig besuchen können, muss der Server in der Lage sein, viele verschiedene gleichzeitige Sitzungen zu unterscheiden und die richtige Sitzung immer dem richtigen Benutzer zuzuweisen. (Und kein Benutzer darf die Sitzung eines anderen Benutzers "stehlen".)

Dies geschieht durch den Cookie. Das im Browser gespeicherte Cookie, das in diesem Fall eine zufällige Kombination wie s73jsd74df4fdf sein sollte (also nicht erraten werden kann), wird bei jeder Anforderung vom Browser an den Server gesendet, und der Server kann die richtige Sitzung zuweisen und verwenden seine Antworten (Seitenaufrufe)

Das Cookie ermöglicht dem Server, den Browser/Benutzer zu erkennen. Durch die Sitzung kann sich der Server Informationen zwischen verschiedenen Seitenaufrufen merken.

10
Karl Thorwald

Es ist möglich, beides zu haben: Ein Datenbank-Primärschlüssel wird gehasht und in einer Nachschlagetabelle gespeichert: Dann wird der Hash als Cookie auf dem Client gespeichert. Nach dem Senden des Hash-Cookies (hahhahaha :) wird der entsprechende Primärschlüssel nachgeschlagen und die restlichen Details werden in einer anderen Tabelle in der Serverdatenbank angezeigt.

2
Joe

Session ist ein serverseitiges Objekt .__, das Daten zwischen Seitenaufrufen überträgt oder darauf zugreift.
Cookies sind ein Objekt auf Client-Seite/Client-Maschine, das Textinformationen von Browser und Server speichert. 

1
raghav

Sitzungen sind nicht davon abhängig, dass der Benutzer ein Cookie zulässt. Sie funktionieren stattdessen wie ein Token, das den Zugriff und die Weitergabe von Informationen ermöglicht, während der Benutzer seinen Browser geöffnet hat. Das Problem bei Sitzungen ist, dass beim Schließen des Browsers auch die Sitzung verloren geht. Wenn Sie also über eine Site verfügen, für die ein Login erforderlich ist, kann diese nicht als Sitzung gespeichert werden, ähnlich wie ein Cookie, und der Benutzer muss sich bei jedem Besuch erneut anmelden. 

1
Shankar kumar
  • Der Hauptunterschied zwischen Cookies und Sitzungen besteht darin, dass Cookies im Browser des Benutzers gespeichert werden und Sitzungen nicht. Dieser Unterschied bestimmt, wofür jeder am besten verwendet wird. 

  • Ein Cookie kann Informationen im Browser des Benutzers speichern, bis sie gelöscht werden. Wenn eine Person über ein Login und ein Passwort verfügt, kann dieses in ihrem Browser als Cookie gesetzt werden, sodass sie sich nicht bei jedem Besuch erneut auf Ihrer Website anmelden müssen. Sie können fast alles in einem Browser-Cookie speichern. 

0
Shankar kumar

Es scheint einige Verwirrung darüber zu geben, was ein Session-Cookie ist. 

Erstens, wenn wir über Session-Cookies sprechen, hat dies nichts mit ASP.Net-Sitzungen zu tun. Sitzungs-Cookies haben ebenfalls nichts mit serverseitigen Prozessen oder Caching zu tun.

Ein Session-Cookie ist nichts anderes als ein Cookie, das abläuft, wenn die Browsersitzung abläuft. So erstellen Sie ein Sitzungs-Cookie: Legen Sie kein Ablaufdatum fest. Dadurch wird das Cookie im Speicher abgelegt und bei der Entsorgung des Browsers entsorgt.

0
Sean Mc