Sobes.tech
Middle

Механизми кори сессия дар барномаҳои веб чӣ гуна аст?

sobes.tech AI

Ҷавоб аз AI

Механизми коркаро бо сессия дар барномаҳои веб асос ёфтааст ба шиносномадиҳии корбар байни дархостҳо, ки табиати худ беҳолат (stateless) мебошанд.

Раванди одатан чунин менамояд:

  1. Дархости аввалини корбар: Клиент (браузер) дархостро ба сервер мефиристад.
  2. Эҷоди сессия: Сервер дархостро мегирад ва, агар ин дархости аввал аз ин клиент бошад ё сессия ҳанӯз эҷод нашуда бошад, шенасоии беназири сессия (Session ID) мебарорад.
  3. Захира кардани маълумотҳои сессия: Сервер маълумотҳоро, ки бо ин Session ID алоқаманданд, нигоҳ медорад. Инҳо метавонанд маълумотҳо дар бораи корбар (номи корбар, нақш), ҳолати корзинаи харид, танзимот ва ғайра бошанд. Захира кардан метавонад дар сервер (дар хотира, дар файлҳо) ё дар анбори алоҳида (маълумотхона, Redis) сурат гирад.
  4. Тарафдории Session ID ба клиент: Сервер ҷавобро бо Session ID мефиристад. Усули маъмултарини интиқол:
    • Cookie: Сервер cookie бо Session ID-ро дар браузери корбар насб мекунад. Браузер автоматӣ ин cookie-ро бо ҳар дархости оянда ба ҳамон домен мефиристад.
    • URL: Session ID дар параметрҳои URL дохил мешавад (усули бехатартар ва тавсияшаванда).
    • Маъзурҳои пинҳон дар шакл: Session ID дар майдони пинҳон <input type="hidden"> дар формати HTML ҷойгир мешавад (дар вақти фиристодани формҳо истифода мешавад).
  5. Дархостҳои оянда: Вақте ки клиент дархости ояндаро мефиристад, он Session ID-ро дар он дохил мекунад (масалан, аз cookie).
  6. Шиносномадиҳӣ аз корбар: Сервер дархостро мегирад, Session ID-ро мекафад ва барои ёфтани маълумоти сессия истифода мебарад. Ин тариқ, сервер "шинос" мекунад, ки корбар ва ҳолати гузаштаашро.
  7. Навсозии маълумоти сессия: Дар равандҳои муоширати корбар бо барнома, сервер метавонад маълумотро тағир диҳад ё илова кунад дар анбори сессияҳо, ки бо Session ID-и ҳозира алоқаманданд.
  8. Анҷоми сессия: Сессия метавонад равшанона (масалан, дар вақти баромад аз система) ё автоматӣ пас аз тамом шудани вақти фаъолият (тайм-аути сессия) анҷом дода шавад. Дар анҷоми сессия, маълумотҳое, ки бо Session ID алоқаманданд, аз сервер тоза карда мешаванд.

Компонентҳои асосӣ:

  • Session ID: Шенасоии беназири сессия.
  • Анбори серверии сессияҳо: Маконе, ки маълумотҳо бо Session ID нигоҳ дошта мешаванд.
  • Механизми интиқолии Session ID ба клиент: Аксар вақт Cookie.

Ин механизм имкон медиҳад, ки барномаҳои веб контексти муошират бо ҳар як корбарро дар тӯли кори ӯ бо сайт нигоҳ доранд, новобаста аз хусусияти беҳолатии протоколи HTTP.