Das HTTP-Protokoll ist zustandslos. Sitzungen sind eine Möglichkeit, den Clientstatus über HTTP-Anforderungen hinweg beizubehalten. Sie können dies entweder mit der integrierten Sitzungsbehandlung einer Plattform oder selbst mit Abfragezeichenfolgenparametern tun. In beiden Fällen ist für viele Aufgaben ein Sitzungskonzept erforderlich.
Ihr Kollege mag wahrscheinlich keine bestimmte Implementierung oder hat Sitzungen nicht für die beabsichtigten Zwecke verwendet. Wenn Sie Informationen zu einer bestimmten Clientverbindung über HTTP-Anforderungen hinweg beibehalten möchten, benötigen Sie eine Form der Sitzungspersistenz.
Die folgenden Probleme sind implementierungsspezifisch:
Untypisierte Art von Sitzungsvariablen
Globale Gültigkeit von Sitzungsvariablen
Server mit Lastenausgleich verlieren Sitzungen
Anwendungspools / Server werden neu gestartet
Beispielsweise arbeite ich am häufigsten in PHP und speichere meine Sitzungsinformationen in einer relationalen Datenbank. Also werden meine Sitzungsvariablen eingegeben. Lastausgleich und Serverneustarts verursachen keine Sitzungsprobleme.
Dieser ist interessanter:
Sitzungs-Timeouts führen zu Statusverlust
Sitzungen werden am häufigsten über Cookies gespeichert. Diese können vom Kunden jederzeit gelöscht werden. Sie können jedoch auch über einen Abfragezeichenfolge-Parameter beibehalten werden, sodass auf dem Client keine Zeitüberschreitung auftritt. Das Server-Timeout liegt bei Ihnen. Auch dieses Problem ist implementierungsspezifisch.
Lassen Sie uns nicht das gesamte Konzept von Sitzungen streichen, nur weil uns eine bestimmte Implementierung nicht gefällt. Jedes gute Webanwendungsframework erleichtert die ordnungsgemäße Verwendung von Sitzungen, um Benutzeranmeldungen oder andere für den aktuellen Besuch des Benutzers spezifische Elemente beizubehalten. Der Datenbankeintrag eines Benutzers kann (und sollte) verwendet werden, um bestimmte Dinge zu speichern, wenn er angemeldet ist. Anonyme Besucher verfügen jedoch möglicherweise auch über temporäre Informationen, die es wert sind, in ihrer Sitzung aufbewahrt zu werden, z. B. eine kurze Liste der zuletzt besuchten Seiten oder die Präferenz für verstecke eine Nachricht, die sie bereits gesehen haben. Im Allgemeinen sind nur kleinere temporäre Informationen für die Sitzungsspeicherung geeignet.
using things like query string parameters instead
- Verwenden Sie in diesem Fall nach Möglichkeit immer die Parameter der Abfragezeichenfolge. Die Verwendung einer Sitzung für diesen Parametertyp ist anfällig und kann zu seltsamen Fehlern führen, wenn Benutzer mehrere Registerkarten geöffnet haben.