Sobes.tech
Middle

Jaký je mechanismus práce relace ve webových aplikacích?

sobes.tech AI

Odpověď od AI

Mechanismus fungování relací ve webových aplikacích je založen na identifikaci uživatele mezi požadavky, které jsou svou povahou bezstavové (stateless).

Proces obvykle vypadá takto:

  1. První požadavek uživatele: Klient (prohlížeč) odešle požadavek na server.
  2. Vytvoření relace: Server obdrží požadavek a pokud je to první požadavek od tohoto klienta nebo pokud relace ještě nebyla vytvořena, vygeneruje unikátní identifikátor relace (Session ID).
  3. Uložení dat relace: Server uloží data spojená s tímto Session ID. Mohou to být uživatelská data (přihlášení, role), stav košíku, nastavení atd. Ukládání může probíhat na serveru (v paměti, souborech) nebo v samostatném úložišti (databáze, Redis).
  4. Přenos Session ID k klientovi: Server odešle odpověď, která obsahuje Session ID. Nejčastější způsoby přenosu:
    • Cookie: Server nastaví cookie s Session ID v prohlížeči uživatele. Prohlížeč automaticky odešle tento cookie při každém dalším požadavku na stejnou doménu.
    • URL: Session ID je zahrnuto v parametrech URL (méně bezpečná a nedoporučená metoda).
    • Skryté pole ve formuláři: Session ID je umístěno do skrytého pole <input type="hidden"> v HTML formuláři (používá se při odesílání formulářů).
  5. Následující požadavky: Když klient odešle další požadavek, zahrnuje v něm Session ID (například z cookie).
  6. Identifikace uživatele: Server obdrží požadavek, extrahuje Session ID a použije jej k vyhledání odpovídajících dat relace. Tímto způsobem "pozná" uživatele a jeho předchozí stav.
  7. Aktualizace dat relace: Jakmile uživatel interaguje s aplikací, server může měnit nebo přidávat data do úložiště relací spojených s aktuálním Session ID.
  8. Ukončení relace: Relace může být ukončena explicitně (například při odhlášení) nebo automaticky po stanovené době neaktivity (timeout relace). Při ukončení jsou data spojená s Session ID odstraněna ze serveru.

Hlavní komponenty:

  • Session ID: Unikátní identifikátor relace.
  • Uložiště relací na serveru: Místo, kde jsou uložena data spojená s Session ID.
  • Mechanismus přenosu Session ID k klientovi: Obvykle Cookie.

Tento mechanismus umožňuje webovým aplikacím udržovat kontext interakce s každým uživatelem po celou dobu jeho práce na stránce, navzdory bezstavné povaze protokolu HTTP.