Sobes.tech
Middle

Веб колдонмолордо сессиянын иштөө механизми кандай?

sobes.tech AI

AIден жооп

Сессиянын иштөө механизми — бул HTTP-суроолор ортосунда колдонуучунун абалын сактоо, ал өзүнүн негизинде stateless болуп саналат. Бул уникалдуу сессия идентификаторун колдонуу аркылуу жетишилет:

Негизги кадамдар:

  1. Колдонуучунун биринчи суроосу: Колдонуучу веб-серверге суроо жиберет.
  2. Сессия түзүү: Эгер суроо белгисиз колдонуучудан болсо (анын сессия идентификатору жок болсо), сервер өзүнүн тарапында жаңы сессия түзөт (эстутумда, маалымат базасында, файл системасында) жана уникалдуу сессия идентификаторун чыгарат.
  3. Идентификаторду кардарга жөнөтүү: Сервер бул идентификаторду cookie түрүндө жиберет (Set-Cookie: SESSIONID=xyz; path=/).
  4. Кардарда сактоо: Браузер бул cookie'ни сактап, бардык кийинки суроолор менен ошол эле доменге жиберет (Cookie: SESSIONID=xyz).
  5. Серверде идентификация: Ар бир кийинки суроодо, эгер cookie ичинде сессия идентификатору болсо, сервер аны колдонуп тиешелүү сессияны табат жана сакталган колдонуучу маалыматтарын алат.
  6. Сессияны аяктоо: Сессия активдүүлүк убактысы аяктагандан кийин, колдонуучу чыгуу (logout) жасаганда, же браузер жабылганда (эгер cookie убакыт чектелбесе), аяктайт.

Мисал — авторизация маалыматтарын сактоо үчүн сессияны колдонуу:

// Java Servlets мисалы
HttpSession session = request.getSession(); // Сессияны алуу же түзүү

// Колдонуучу авторизацияланганбы-жокпу текшерүү
if (session.getAttribute("loggedInUser") == null) {
    // Колдонуучу авторизацияланбаган, кирүү барагына которуу
    response.sendRedirect("/login");
} else {
    // Колдонуучу авторизацияланган, маалыматтарды алуу
    User user = (User) session.getAttribute("loggedInUser");
    // ... колдонуучунун маалыматтары менен иштөө
}

Сессия сактагычтары:

  • Сервердин эсинде (кичинекей тиркемелер үчүн ылайыктуу)
  • Сервердин файл системасында
  • Маалымат базасында (классикалык, масштабдуу)
  • Тараза кэштерде (Redis, Memcached) — көпсервердик масштабдоо үчүн

Коопсуздук:

  • "secure" жана "HttpOnly" белгилеринин колдонулушу cookie сессия үчүн
  • Идентификаторду кайра генерациялоо ийгиликтүү аутентификациядан кийин
  • Сессиянын ылайыктуу убакыт чегин коюу
  • Session Hijackingтен коргоо (сессия идентификаторун уурулук менен алуу)