Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 17168|Vastaus: 1

[Lähde] Sessionin elinkaari

[Kopioi linkki]
Julkaistu 19.4.2015 19.44.59 | | |
En kiinnittänyt siihen paljon huomiota aiemmin opiskellessani, mutta tänään palasin ja tutkin tarkasti istunnon elinkaarta.
Istunnot tallennetaan palvelinpuolelle, ja yleensä estämään niiden pääsy palvelimen muistiin (nopeaa käyttöä varten) Sessinon luo ensimmäisen kerran, kun käyttäjä käyttää palvelinta.Huomaa, että vain JSP:n, Servletin ja muiden ohjelmien käyttö luo istunnon, eikä vain staattisten resurssien, kuten HTML:n ja IMAGEn, käyttö ei luo istuntoa.
  Milloin istunto päättyy?
1. Palvelin tyhjentää istunnon palvelimen muistista, joka on ollut pitkään passiivinen, ja istunto on virheellinen. Tomcatin istunnon oletusviimeinen käyttöaika on 20 minuuttia.
2. Kutsu istunnon mitätöintimenetelmä.
  Selainten istuntovaatimukset:
 Vaikka istunto tallennetaan palvelimelle ja on asiakkaalle läpinäkyvä, sen normaali toiminta vaatii silti asiakkaan selaimen tuen. Tämä johtuu siitä, että Sessionin täytyy käyttää evästeitä tunnisteena. HTTP-protokolla on tilaton, eikä istuntoa voi arvioida HTTP-yhteyden perusteella määrittääkseen, onko kyseessä sama asiakas, joten palvelin lähettää asiakasselaimelle evästeen nimeltä JSESSIONID, jolla on istunnon id-arvo (eli HttpSession.getId()) palautusarvo. Session käyttää evästettä tunnistaakseen, onko kyseessä sama käyttäjä.

Tämä eväste generoidaan automaattisesti palvelimen toimesta, ja sen maxAge-attribuutti on yleensä -1, mikä tarkoittaa, että eväste on voimassa vain nykyisessä selaimessa, eikä sitä jaeta selaimen ikkunoiden välillä, eikä se ole voimassa selaimen sulkemisen yhteydessä. Siksi, kun kaksi selaimen ikkunaa samalla koneella pääsee palvelimelle, syntyy kaksi eri istuntoa. Paitsi uudet ikkunat, jotka avataan linkeillä, skripteillä jne. selainikkunassa (eli ei ikkunoita, jotka avautuvat kaksoisklikkaamalla työpöytäselaimen kuvakkeita jne.). Nämä lapsiikkunat jakavat vanhemman ikkunan evästeen ja siten istunnon.

Huomautus: Uudet istunnot luodaan juuri avatuissa selainikkunoissa, paitsi aliikkunoissa. Lapsi-ikkuna jakaa vanhemman ikkunan istunnon. Esimerkiksi, kun napsautat linkkiä hiiren oikealla ja valitset pikavalikosta "Avaa uudessa ikkunassa", lapsi-ikkuna pääsee vanhemman ikkunan Istuntoon.

Entä jos asiakasselain poistaa evästeet käytöstä tai ei tue evästeitä? Esimerkiksi valtaosa mobiiliselaimista ei tue evästeitä. Java Web tarjoaa toisen ratkaisun: URL-osoitteen uudelleenkirjoittamisen.
URL-osoitteen uudelleenkirjoitus on ratkaisu asiakkaille, jotka eivät tue evästeitä. URL-osoitteen uudelleenkirjoittamisen periaate on kirjoittaa käyttäjän istunnon tunnistetiedot URL-osoitteeseen. Palvelin voi jäsentää uudelleen kirjoitetun URL-osoitteen saadakseen Session ID:n. Näin, vaikka asiakas ei tukisi evästeitä, istuntoa voidaan käyttää käyttäjän tilan tallentamiseen. HttpServletResponse-luokka tarjoaa encodeURL:n (String url) URL-osoitteen uudelleenkirjoittamiseen, joka automaattisesti määrittää, tukeeko asiakas evästeitä. Jos asiakasohjelma tukee evästeitä, URL tulostetaan sellaisenaan. Jos asiakasohjelma ei tue evästeitä, käyttäjäistunnon tunnus kirjoitetaan URL-osoitteeseen.
Huomautus: TOMCAT määrittää, tukeeko asiakasselain evästeitä sen perusteella, sisältyykö pyyntöön eväste. Vaikka asiakas saattaa tukea evästeitä, koska ensimmäisellä pyynnöllä ei ole evästeitä (koska evästeitä ei ole), uudelleenkirjoitetussa URL-osoitteessa on silti jsessionid osoitteessa. Palvelin on jo kirjoittanut evästeen selaimeen toisella käynnillä, joten uudelleenkirjoitetussa URL-osoitteessa ei ole jsessionid-osoitetta osoitteessa.





Edellinen:HTML-niksi muuttaa taulukon reuna ohueksi viivaksi
Seuraava:Rakenna mukautettu tiedostovälimuisti suorituskyvyn optimoinnin ASP.NET
Julkaistu 18.3.2017 16.52.21 |
Se on todella hyvin kirjoitettu, opi!
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com