Heim Web-Frontend js-Tutorial Sitzungslebenszyklus

Sitzungslebenszyklus

Sep 13, 2017 am 10:16 AM
session 周期

Früher habe ich beim Lernen nicht viel aufgepasst, aber heute bin ich zurückgegangen und habe den Lebenszyklus von Session sorgfältig studiert.

Die Sitzung wird auf der Serverseite gespeichert, um zu verhindern, dass sie im Speicher des Servers gespeichert wird (für Hochgeschwindigkeitszugriff), die Sitzung wird erstellt, wenn der Benutzer zum ersten Mal auf den Server zugreift Es ist zu beachten, dass nur beim Zugriff auf JSP, Servlet usw. eine Sitzung erstellt wird. Nur der Zugriff auf statische Ressourcen wie HTML und IMAGE kann nicht aufgerufen werden. getSession(true), um eine Sitzung zu erzwingen.

 Wann läuft die Sitzung ab?

 1. Der Server löscht die Sitzung, die lange Zeit inaktiv war, aus dem Serverspeicher und die Sitzung wird ungültig. Die Standardablaufzeit der Sitzung in Tomcat beträgt 20 Minuten.

  2. Rufen Sie die Invalidate-Methode von Session auf.

Anforderungen an den Sitzungsbrowser:

  Obwohl die Sitzung auf dem Server gespeichert wird und für den Client transparent ist, erfordert ihr normaler Betrieb dennoch die Unterstützung des Client-Browsers. Dies liegt daran, dass Session Cookies als Identifikationsmerkmal verwenden muss. Das HTTP-Protokoll ist zustandslos und die Sitzung kann anhand der HTTP-Verbindung nicht feststellen, ob es sich um denselben Client handelt. Daher sendet der Server ein Cookie mit dem Namen JSESSIONID an den Client-Browser und sein Wert ist die ID der Sitzung (d. h. HttpSession.getId() Rückgabewert). Session verwendet dieses Cookie, um festzustellen, ob es sich um denselben Benutzer handelt.

Dieses Cookie wird automatisch vom Server generiert. Sein maxAge-Attribut ist im Allgemeinen -1, was bedeutet, dass es nur im aktuellen Browser gültig ist und nicht zwischen Browserfenstern geteilt wird. Es wird ungültig, wenn der Browser geschlossen wird . Wenn also zwei Browserfenster auf demselben Computer auf den Server zugreifen, werden zwei unterschiedliche Sitzungen generiert. Ausgenommen sind jedoch neue Fenster, die durch Links, Skripte usw. innerhalb des Browserfensters geöffnet werden (d. h. Fenster, die nicht durch Doppelklicken auf das Desktop-Browsersymbol usw. geöffnet werden). Diese Art von untergeordnetem Fenster teilt das Cookie des übergeordneten Fensters und teilt daher eine Sitzung.

 Hinweis: Ein neu geöffnetes Browserfenster generiert eine neue Sitzung, außer bei untergeordneten Fenstern. Untergeordnete Fenster teilen sich die Sitzung des übergeordneten Fensters. Wenn Sie beispielsweise mit der rechten Maustaste auf einen Link klicken und im Popup-Kontextmenü „In neuem Fenster öffnen“ auswählen, kann das untergeordnete Fenster auf die Sitzung des übergeordneten Fensters zugreifen.

Was passiert, wenn der Client-Browser die Cookie-Funktion deaktiviert oder keine Cookies unterstützt? Beispielsweise unterstützt die überwiegende Mehrheit der mobilen Browser keine Cookies. Java Web bietet eine weitere Lösung: Umschreiben von URL-Adressen.

Das Umschreiben von URL-Adressen ist eine Lösung für Clients, die keine Cookies unterstützen. Das Prinzip des Umschreibens von URL-Adressen besteht darin, die Sitzungs-ID-Informationen des Benutzers in die URL-Adresse umzuschreiben. Der Server kann die neu geschriebene URL analysieren, um die Sitzungs-ID zu erhalten. Auf diese Weise kann die Sitzung zum Aufzeichnen des Benutzerstatus verwendet werden, auch wenn der Client keine Cookies unterstützt. Die HttpServletResponse-Klasse stellt encodeURL (String-URL) bereit, um das Umschreiben von URL-Adressen zu implementieren. Diese Methode ermittelt automatisch, ob der Client Cookies unterstützt. Wenn der Client Cookies unterstützt, wird die URL intakt ausgegeben. Wenn der Client keine Cookies unterstützt, wird die Sitzungs-ID des Benutzers in die URL umgeschrieben.

 Hinweis: TOMCAT bestimmt, ob der Client-Browser Cookies unterstützt, basierend darauf, ob die Anfrage Cookies enthält. Obwohl der Client möglicherweise Cookies unterstützt, enthält die neu geschriebene URL-Adresse weiterhin jsessionid, da bei der ersten Anfrage keine Cookies übertragen werden (da keine Cookies übertragen werden müssen). Beim zweiten Zugriff hat der Server das Cookie bereits in den Browser geschrieben, sodass die URL-Adresse nach dem Umschreiben keine jsessionid enthält.

Das obige ist der detaillierte Inhalt vonSitzungslebenszyklus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1666
14
PHP-Tutorial
1273
29
C#-Tutorial
1253
24
Was soll ich tun, wenn die PHP-Sitzung nach der Aktualisierung verschwindet? Was soll ich tun, wenn die PHP-Sitzung nach der Aktualisierung verschwindet? Jan 18, 2023 pm 01:39 PM

Lösung für das Problem, dass die PHP-Sitzung nach der Aktualisierung verschwindet: 1. Öffnen Sie die Sitzung über „session_start();“ 2. Schreiben Sie alle öffentlichen Konfigurationen in eine PHP-Datei 3. Der Variablenname darf nicht mit dem Array-Index identisch sein; 4. Überprüfen Sie einfach den Speicherpfad der Sitzungsdaten in phpinfo und prüfen Sie, ob die Sitzung im Dateiverzeichnis erfolgreich gespeichert wurde.

So legen Sie das Sitzungszeitlimit in der SpringBoot-Sitzung fest So legen Sie das Sitzungszeitlimit in der SpringBoot-Sitzung fest May 15, 2023 pm 02:37 PM

Das Problem wurde im Springboot-Projekt-Produktions-Session-Out-Timeout gefunden: In der Testumgebung wurde der Session-Out durch Ändern der application.yaml konfiguriert, nachdem die Session-Out-Konfiguration überprüft wurde In Kraft trat, wurde die Ablaufzeit für die Veröffentlichung in der Produktionsumgebung direkt auf 8 Stunden festgelegt. Allerdings habe ich am Mittag die Rückmeldung von Kunden erhalten, dass die Projektablaufzeit kurz eingestellt wurde. Wenn eine halbe Stunde lang keine Aktion ausgeführt wird, läuft die Sitzung ab und erfordert wiederholte Anmeldungen. Lösen Sie das Problem der Handhabung der Entwicklungsumgebung: Das Springboot-Projekt verfügt über integriertes Tomcat, sodass der in application.yaml im Projekt konfigurierte Sitzungsausgang wirksam ist. Produktionsumgebung: Die Produktionsumgebung ist freigegeben

So beheben Sie Sitzungsfehler So beheben Sie Sitzungsfehler Oct 18, 2023 pm 05:19 PM

Ein Sitzungsfehler wird normalerweise durch den Ablauf der Sitzungslebensdauer oder das Herunterfahren des Servers verursacht. Die Lösungen: 1. Verlängern Sie die Lebensdauer der Sitzung. 3. Verwenden Sie Cookies. 4. Aktualisieren Sie die Sitzung.

So lösen Sie das Problem, dass die Timeout-Einstellung für die Springboot2-Sitzung ungültig ist So lösen Sie das Problem, dass die Timeout-Einstellung für die Springboot2-Sitzung ungültig ist May 22, 2023 pm 01:49 PM

Problem: Heute ist in unserem Projekt ein Zeitüberschreitungsproblem aufgetreten, und Änderungen an den application.properties von SpringBoot2 wurden nie wirksam. Lösung: Die server.*-Eigenschaften werden verwendet, um den eingebetteten Container zu steuern, der von SpringBoot verwendet wird. SpringBoot erstellt eine Instanz des Servlet-Containers mithilfe einer der ServletWebServerFactory-Instanzen. Diese Klassen verwenden server.*-Eigenschaften, um den kontrollierten Servlet-Container (Tomcat, Jetty usw.) zu konfigurieren. Wenn die Anwendung als WAR-Datei auf einer Tomcat-Instanz bereitgestellt wird, gelten die server.*-Eigenschaften nicht. Sie gelten nicht,

Lösung für das domänenübergreifende Problem der PHP-Sitzung Lösung für das domänenübergreifende Problem der PHP-Sitzung Oct 12, 2023 pm 03:00 PM

Lösung des domänenübergreifenden Problems von PHPSession Bei der Entwicklung der Front-End- und Back-End-Trennung sind domänenübergreifende Anforderungen zur Norm geworden. Wenn es um domänenübergreifende Probleme geht, nutzen wir in der Regel Sitzungen und verwalten diese. Aufgrund von Richtlinieneinschränkungen für den Browserursprung können Sitzungen jedoch standardmäßig nicht über Domänen hinweg gemeinsam genutzt werden. Um dieses Problem zu lösen, müssen wir einige Techniken und Methoden verwenden, um eine domänenübergreifende gemeinsame Nutzung von Sitzungen zu erreichen. 1. Die häufigste Verwendung von Cookies zum domänenübergreifenden Teilen von Sitzungen

Was ist die Standardablaufzeit von Session PHP? Was ist die Standardablaufzeit von Session PHP? Nov 01, 2022 am 09:14 AM

Die Standardablaufzeit der Sitzungs-PHP beträgt 1440 Sekunden, also 24 Minuten. Das heißt, wenn der Client länger als 24 Minuten nicht aktualisiert wird, läuft die aktuelle Sitzung ab, wenn der Benutzer den Browser schließt Die Sitzung wird nicht mehr existieren.

So implementieren Sie die SMS-Anmeldung in der Redis-Anwendung für gemeinsam genutzte Sitzungen So implementieren Sie die SMS-Anmeldung in der Redis-Anwendung für gemeinsam genutzte Sitzungen Jun 03, 2023 pm 03:11 PM

1. Implementieren der SMS-Anmeldung basierend auf der Sitzung 1.1 Ablaufdiagramm der SMS-Anmeldung 1.2 Implementieren des Sendens eines SMS-Bestätigungscodes Beschreibung der Front-End-Anfrage: Beschreibung der Anfragemethode POST-Anfragepfad/Benutzer/Code-Anfrageparameter Telefon (Telefonnummer) Rückgabewert Keine Back-End-Schnittstelle Implementierung: @Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1 Überprüfen Sie die Mobiltelefonnummer, wenn

Was sind die Unterschiede zwischen JavaScript- und PHP-Cookies? Was sind die Unterschiede zwischen JavaScript- und PHP-Cookies? Sep 02, 2023 pm 12:29 PM

JavaScript-Cookies Die Verwendung von JavaScript-Cookies ist die effektivste Möglichkeit, Präferenzen, Käufe, Provisionen und andere Informationen zu speichern und zu verfolgen. Informationen, die für ein besseres Besuchererlebnis oder Website-Statistiken benötigt werden. PHPCookieCookies sind Textdateien, die auf Client-Computern gespeichert und zu Nachverfolgungszwecken aufbewahrt werden. PHP unterstützt transparent HTTP-Cookies. Wie funktionieren JavaScript-Cookies? Ihr Server sendet einige Daten in Form eines Cookies an den Browser Ihres Besuchers. Browser können Cookies akzeptieren. Falls vorhanden, wird es als reiner Textdatensatz auf der Festplatte des Besuchers gespeichert. Wenn ein Besucher nun eine andere Seite der Website erreicht

See all articles