Frage

Da es sich bei HTTP um ein staatenloser Protokoll handelt, identifiziert der Server, wenn ein Client eine Reihe von Anforderungen an den Server stellt, die Anforderungen eines bestimmten Clients über einen bestimmten Zeitraum eindeutig identifiziert.

Ich stöberte das Web und stieß auf Begriffe wie Sitzungs -ID, URL -Umschreiben und Cookies. Aber es wäre großartig, wenn jemand es besser erklärt. Insbesondere welcher Teil der HTTP -Anfrage und -Ronaktion würde für die Sitzungsverfolgung verwendet?

War es hilfreich?

Lösung

Wie Sie bereits erwähnt haben, umfassen die allgemeinen Möglichkeiten zur Implementierung der HTTP -Sitzungsverfolgung URL -Umschreiben und Cookies. Die Sitzungsverfolgung erfordert im Wesentlichen, dass eine Sitzungs -ID über mehrere Anforderungen an den Server gewartet wird. Dies bedeutet, dass ein bestimmter Client jedes Mal eine Anfrage an den Server stellt und dieselbe Sitzungs -ID übergibt. Der Server kann diese ID verwenden, um die von ihm verwalteten Sitzungsinformationen zu suchen.

Bei der Verwendung von Cookies fordert der Server den Client auf, ein Cookie zu speichern, indem er die festlegt Set-Cookie HTTP -Antwortheader. Dieses Cookie enthält die eindeutige Sitzungs -ID, die diesem Client zugewiesen ist - in diesem Beispiel die Zeichenfolge 'ABAD1D':

    Set-Cookie: JSESSIONID=ABAD1D;path=/

Der Cookie wird dann vom Client mit dem Client wieder an den Server gesendet Cookie HTTP -Anforderungsheader für jede Anfrage und somit wird der Server in jeder Anforderung die Sitzungs -ID informiert, die dem Client derzeit zugewiesen wurde.

    Cookie: JSESSIONID=ABAD1D

Bei der Verwendung von URL -Umschreiben wird dieselbe Sitzungs -ID stattdessen irgendwo in der URL gesendet. Auch hier extrahiert der Server die Sitzungs -ID aus der URL, sodass er die Sitzung für einen bestimmten Client suchen kann:

    http://my.app.com/index.jsp;JSESSIONID=ABAD1D

Der Server muss jedoch auch sicherstellen, dass URLs auf den an den Client zurückgesandten Webseiten auch um diese bestimmte Client -Sitzungs -ID enthalten sind. Da die Sitzungs -ID in den URLs codiert ist, ist diese Methode der Sitzungsverfolgung für den Browser transparent. Oft greift ein Server auf URL -Umschreiben zurück, wenn er feststellt, dass er kein Sitzungs -Cookie auf dem Client festlegen kann - was impliziert, dass der Client Cookies nicht unterstützt/zulässt.

Beachten Sie, dass Sitzungen ablaufen können. Dies bedeutet, dass der Server eine bestimmte Sitzungs -ID für einen bestimmten Zeitraum nicht „anzeigt“, er die Sitzungsdaten entfernen kann, um die Ressourcen zu erhalten.

Andere Tipps

Insbesondere welcher Teil der HTTP -Anfrage und -Ronaktion würde für die Sitzungsverfolgung verwendet?

In der HTTP -Antwort kann der Server ein Cookie festlegen. Dies geschieht mit dem Set-Cookie-Header. Zum Beispiel:

Set-Cookie: session=12345; path=/

Der Client gibt dann den Wert aller Cookies zurück, die den Eigenschaften entsprechen, die zusammen mit dem Cookie festgelegt wurden, der Pfad (wie oben) und Domäne umfasst und die noch nicht abgelaufen sind.

Das Cookie wird als Teil der HTTP -Header an den Server zurückgeschickt. Zum Beispiel:

Cookie: session=12345

Keine der ursprünglichen Immobilieninformationen wird mit dem Cookie zurückgesandt.

Mit einem einzigartigen Cookie kann der Server einen eindeutigen Schlüssel mit einer bestimmten Browserinstanz verknüpfen. Der Server kann diesen Schlüssel dann als Index in eine Hash-Tabelle oder eine Datenbanktabelle verwenden, in der eindeutige Informationen pro Benutzer enthalten sind.

Die Sitzungsverfolgung ist eine serverseitige Sache.

Ein Webserver gibt eine Sitzungskennung aus, die an den Browser zurückgegeben wird. Browser legt diese Sitzungskennung zusammen mit jeder Anfrage ein.

Dies geschieht wahrscheinlich mit Cookies für den Benutzer transparent.

Die Sitzung der Sitzung wird in den meisten Fällen durch Senden eines Sendens behandelt Plätzchen an den Client. Dieser Cookie wird bei jeder Anfrage von diesem bestimmten Client an den Server zurückgesandt.

Das session id wird einigen Ressourcen auf der Serverseite (Datei, RAM -Speicherplatz) zugeordnet, damit der Server das Lesen der session id Im Cookie finden Sie diese Ressource und wissen dann, welcher Client es war.

Finden Sie genügend Details hier

HTTP -Sitzungen sind der empfohlene Ansatz. Eine Sitzung identifiziert die Anfragen, die während der Gesprächszeit aus demselben Browser stammen. Alle Servlets können dieselbe Sitzung teilen. Die JSESSIONID wird vom Server generiert und kann über Cookies, URL-Umschreiber (falls Cookies ausgeschaltet werden) oder ein integriertem SSL-Mechanismus übergeben werden. Es sollte darauf geachtet werden, dass die Größe der in Sitzungen gespeicherten Objekte minimiert, und Objekte, die in der Sitzung gespeichert sind, sollten serialisierbar sein. In einem Java -Servlet kann die Sitzung wie folgt erhalten werden:

HttpSession Session = request.getSession (); // Gibt die aktuelle Sitzung oder eine neue Sitzung zurück

Sitzungen können zeitlich (in web.xml konfiguriert) oder manuell ungültig gemacht werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top