Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 17168|Válasz: 1

[Forrás] A Session életciklusa

[Linket másol]
Közzétéve 2015. 04. 19. 19:44:59 | | |
Korábban nem figyeltem rá különösebben tanuláskor, de ma visszamentem, és alaposan tanulmányoztam az ülés életciklusát.
A munkamenetek a szerver oldalán tárolódnak, és általában azért, hogy megakadályozzák azok a szerver memóriájában (nagy sebességű hozzáférés esetén), a Sessinon létrehozza az első alkalommal, amikor a felhasználó hozzáfér a szerverhez.Fontos megjegyezni, hogy csak a JSP, Servlet és más programok használata hozza létre egy Sessiont, és csak statikus erőforrások, például HTML és IMAGE használata nem hoz létre Sessiont.
  Mikor jár le egy ülés?
1. A szerver töröli a hosszú ideje inaktív szerver memóriáját, és az ülés érvénytelenné válik. A Tomcat-ben az alkalma alapértelmezett lejárati ideje 20 perc.
2. Hívd fel a Session érvénytelenítési módszerét.
  Böngészők számára szóló üléskövetelmények:
 Bár a szekció a szerveren van tárolva, és átlátható a kliens számára, a normál működéséhez továbbra is a kliens böngészőjének támogatása szükséges. Ez azért van, mert a Session-nek cookie-kat kell használnia azonosítóként. A HTTP protokoll állapot nélküli, és a szekciót nem lehet megítélni a HTTP kapcsolat alapján, hogy ugyanaz az ügyfél-e, ezért a szerver egy JSESSIONID nevű sütit küld a kliens böngészőnek, amely a szekció azonosítójának értékét tartalmazza (azaz a HttpSession.getId()) visszaküldési értékét. A Session a sütit arra használja, hogy azonosítsa, ugyanaz a felhasználó-e.

Ezt a süti automatikusan generálja a szerver, és maxAge attribútuma általában -1, ami azt jelenti, hogy csak a jelenlegi böngészőben érvényes, nem osztják meg a böngészőablakok között, és nem lesz érvényes, amikor a böngésző bezárják. Ezért, amikor ugyanazon gépen két böngészőablak lép fel a szerverhez, két különböző ülés generálódik. Kivéve az új ablakokat, amelyeket linkek, szkriptek stb. nyitnak meg a böngészőablakban (azaz nem olyan ablakok, amelyeket dupla kattintással nyitottak meg az asztali böngésző ikonjain, stb.). Ezek a gyermekablakok megosztják a szülőablak sütit, így egy ülést.

Megjegyzés: Az új ülések frissen megnyílt böngészőablakokban generálódnak, kivéve az alablakokat. A gyermekablak megosztja a szülőablak ülését. Például, ha jobb kattintással kattintasz egy linkre, és a "Új ablakban nyisd meg" opciót a gyorsbillentyű menüben, a gyermekablak hozzáférhet a szülőablak Session-jéhez.

Mi van, ha a kliensböngésző kitiltja a sütiket, vagy nem támogatja a sütit? Például a mobil böngészők túlnyomó többsége nem támogatja a sütiket. A Java Web egy másik megoldást kínál: URL-cím újraírása.
Az URL-cím átírása olyan ügyfelek számára egy megoldás, amely nem támogatja a sütiket. Az URL-cím újraírásának elve, hogy a felhasználó ülésének azonosító adatait átírja az URL-címre. A szerver képes leparzálni az átírt URL-t, hogy megkapja a Session azonosítót. Így még ha a kliens nem is támogatja a sütiket, a szekció felhasználható a felhasználói állapot rögzítésére. A HttpServletResponse osztály encodeURL-t (String url) biztosít URL-cím újraírásának megvalósításához, amely automatikusan meghatározza, hogy a kliens támogatja-e a sütiket. Ha az ügyfél támogatja a sütikeket, az URL úgy jelenik meg, ahogy van. Ha az ügyfél nem támogatja a sütiket, a felhasználói munkamenet azonosítója átíródik az URL-be.
Megjegyzés: A TOMCAT úgy dönti el, hogy egy kliens böngésző támogatja-e a sütiket annak alapján, hogy tartalmaz-e egy süti a kérésben. Bár a kliens támogathatja a sütiket, mivel az első kérésnél nem futnak sütiket (mivel nincsenek olyan sütikek, amelyek képesek lenni), az átírt URL-cím továbbra is jsessionid lesz a címben. A szerver már írt sütit a böngészőben a második látogatáskor, így az átírt URL-cím nem tartalmazza a jsessionid a címet.





Előző:HTML trükk a tábla szegélyének vékony vonalra változtatásához
Következő:Egyedi fájlgyorsítótár építése ASP.NET teljesítményoptimalizálás
Közzétéve 2017. 03. 18. 16:52:21 |
Nagyon jól van írva, tanulj meg!
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com