Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 17168|Atbildi: 1

[Avots] Sesijas dzīves cikls

[Kopēt saiti]
Publicēts 19.04.2015 19:44:59 | | |
Es tam nepievērsu lielu uzmanību, kad mācījos iepriekš, bet šodien es atgriezos un rūpīgi izpētīju sesijas dzīves ciklu.
Sesijas tiek glabātas servera pusē, un parasti, lai novērstu to atrašanos servera atmiņā (ātrgaitas piekļuvei), Sessinon izveido pirmo reizi, kad lietotājs piekļūst serverim.Ņemiet vērā, ka sesija tiks izveidota tikai piekļūstot JSP, Servlet un citām programmām, un tikai piekļūstot statiskajiem resursiem, piemēram, HTML un IMAGE, sesija netiks izveidota.
  Kad beidzas sesijas termiņš?
1. Serveris notīrīs sesiju no servera atmiņas, kas ilgu laiku ir bijusi neaktīva, un sesija būs nederīga. Tomcat sesijas noklusējuma derīguma termiņš ir 20 minūtes.
2. Izsauciet sesijas nederīgo metodi.
  Sesijas prasības pārlūkprogrammām:
 Lai gan sesija tiek saglabāta serverī un ir caurspīdīga klientam, tās normālai darbībai joprojām ir nepieciešams klienta pārlūkprogrammas atbalsts. Tas ir tāpēc, ka sesijai ir jāizmanto sīkfaili kā identifikators. HTTP protokols ir bezvalstnieks, un sesiju nevar spriest pēc HTTP savienojuma, lai noteiktu, vai tas ir tas pats klients, tāpēc serveris klienta pārlūkprogrammai nosūta sīkfailu ar nosaukumu JSESSIONID, kura vērtība ir sesijas id vērtība (tas ir, atgrieztā vērtība HttpSession.getId()). Sesija izmanto sīkfailu, lai noteiktu, vai tas ir viens un tas pats lietotājs.

Šo sīkfailu automātiski ģenerē serveris, un tā maxAge atribūts parasti ir -1, kas nozīmē, ka tas ir derīgs tikai pašreizējā pārlūkprogrammā un netiek kopīgots starp pārlūkprogrammas logiem, un tas nebūs derīgs, aizverot pārlūkprogrammu. Tāpēc, kad divi pārlūkprogrammas logi vienā datorā piekļūst serverim, tiek ģenerētas divas dažādas sesijas. Izņemot jaunus logus, kas atvērti ar saitēm, skriptiem utt. pārlūkprogrammas logā (t.i., nevis logus, kas atvērti, veicot dubultklikšķi uz darbvirsmas pārlūkprogrammas ikonām utt.). Šie pakārtotie logi koplieto vecākloga sīkfailu un līdz ar to sesiju.

Piezīme: Jaunas sesijas tiek ģenerētas tikko atvērtos pārlūkprogrammas logos, izņemot apakšlogus. Pakārtotais logs koplieto vecākloga sesiju. Piemēram, ar peles labo pogu noklikšķinot uz saites un uznirstošajā īsinājumizvēlnē izvēloties "Atvērt jaunā logā", bērna logs var piekļūt vecāka loga sesijai.

Ko darīt, ja klienta pārlūkprogramma atspējo sīkdatnes vai neatbalsta sīkdatnes? Piemēram, lielākā daļa mobilo pārlūkprogrammu neatbalsta sīkfailus. Java Web piedāvā vēl vienu risinājumu: URL adreses pārrakstīšanu.
URL adrešu pārrakstīšana ir risinājums klientiem, kas neatbalsta sīkdatnes. URL adreses pārrakstīšanas princips ir pārrakstīt lietotāja sesijas ID informāciju uz URL adresi. Serveris var parsēt pārrakstīto URL, lai iegūtu sesijas ID. Tādā veidā, pat ja klients neatbalsta sīkdatnes, sesiju var izmantot, lai reģistrētu lietotāja stāvokli. Klase HttpServletResponse nodrošina encodeURL (virknes URL), lai ieviestu URL adrešu pārrakstīšanu, kas automātiski nosaka, vai klients atbalsta sīkfailus. Ja klients atbalsta sīkfailus, URL tiks izvadīts tāds, kāds tas ir. Ja klients neatbalsta sīkdatnes, lietotāja sesijas ID tiek pārrakstīts URL.
Piezīme: TOMCAT nosaka, vai klienta pārlūkprogramma atbalsta sīkdatnes, pamatojoties uz to, vai sīkdatne ir iekļauta pieprasījumā. Lai gan klients var atbalstīt sīkdatnes, jo pirmajā pieprasījumā netiek veiktas sīkdatnes (jo nav sīkdatņu, kas to var), pārrakstītajā URL adresē joprojām būs jsessionid adresē. Serveris jau ir ierakstījis sīkfailu pārlūkprogrammā otrajā apmeklējumā, tāpēc pārrakstītajā URL adresē nebūs jsessionid.





Iepriekšējo:HTML triks, lai mainītu tabulas apmali uz plānu līniju
Nākamo:Pielāgotas failu kešatmiņas izveide ASP.NET veiktspējas optimizācija
Publicēts 18.03.2017 16:52:21 |
Tas ir ļoti labi uzrakstīts, mācieties!
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com