Middle
Aký je mechanizmus práce relácie vo webových aplikáciách?
sobes.tech AI
Odpoveď od AI
Mechanizmus práce s reláciou v webových aplikáciách je založený na identifikácii používateľa medzi požiadavkami, ktoré sú svojou povahou bezstavové (stateless).
Proces zvyčajne vyzerá takto:
- Prvá požiadavka používateľa: Klient (prehliadač) odošle požiadavku na server.
- Vytvorenie relácie: Server prijme požiadavku a, ak je to prvá požiadavka od tohto klienta alebo relácia ešte nebola vytvorená, vygeneruje jedinečný identifikátor relácie (Session ID).
- Ukladanie údajov relácie: Server uchováva údaje spojené s týmto Session ID. Môžu to byť údaje o používateľovi (prihlasovacie meno, rola), stav košíka, nastavenia atď. Ukladanie môže prebiehať na serveri (v pamäti, súboroch) alebo v samostatnom úložisku (báza dát, Redis).
- Prenos Session ID klientovi: Server odošle odpoveď klientovi, vrátane Session ID. Najbežnejšie spôsoby prenosu:
- Cookie: Server nastaví cookie s Session ID v prehliadači používateľa. Prehliadač automaticky odošle tento cookie pri každej nasledujúcej požiadavke na ten istý domén.
- URL: Session ID je zahrnuté v parametroch URL (menej bezpečný a odporúčaný spôsob).
- Skryté pole vo formulári: Session ID je umiestnené v skrytom poli
<input type="hidden">v HTML formulári (používa sa pri odosielaní formulárov).
- Nasledujúce požiadavky: Keď klient odošle ďalšiu požiadavku, zahrnie v nej Session ID (napríklad z cookie).
- Identifikácia používateľa: Server prijme požiadavku, extrahuje Session ID a použije ho na vyhľadanie príslušných údajov relácie. Tak server "rozpozná" používateľa a jeho predchádzajúci stav.
- Aktualizácia údajov relácie: Počas interakcie s aplikáciou môže server meniť alebo pridávať údaje do úložiska relácií, spojené s aktuálnym Session ID.
- Ukončenie relácie: Relácia môže byť ukončená explicitne (napríklad pri odhlásení používateľa) alebo automaticky po uplynutí určitého času neaktivity (timeout relácie). Pri ukončení relácie sa údaje spojené s Session ID odstránia zo servera.
Hlavné komponenty:
- Session ID: Jedinečný identifikátor relácie.
- Serverové úložisko relácií: Miesto, kde sa ukladajú údaje spojené s Session ID.
- Mechanizmus prenosu Session ID klientovi: Zvyčajne Cookie.
Tento mechanizmus umožňuje webovým aplikáciám udržiavať kontext interakcie s každým používateľom počas jeho práce na stránke, napriek bezstavovému charakteru protokolu HTTP.