Middle
Ի՞նչ մեխանիզմ է աշխատում սեսիայի մեջ վեբ հավելվածներում։
sobes.tech AI
Պատասխան AI-ից
Միջինակարգի աշխատանքային մեխանիզմը վեբ հավելվածներում հիմնված է օգտվողի նույնականացման վրա՝ հարցումների միջև, որոնք բնույթով անպատասխան են (stateless):
Ընդհանուր գործընթացը հետևյալն է.
- Օգտագործողի առաջին հարցումը: Հաճախորդը (բրաուզերը) ուղարկում է հարցում սերվերին:
- Սեսիայի ստեղծում: Սերվերը ստանում է հարցումը և, եթե դա առաջին հարցումն է այս հաճախորդից կամ սեսիան դեռ չի ստեղծվել, այն ստեղծում է յուրահատուկ սեսիայի նույնականիչ (Session ID):
- Սեսիայի տվյալների պահպանում: Սերվերը պահում է տվյալները, որոնք կապված են այս Session ID-ի հետ: Դրանք կարող են լինել օգտվողի տվյալներ (մուտք, դեր), գնումների զամբյուղի վիճակ, կարգավորումներ և այլն: Տվյալների պահպանումը կարող է կատարվել սերվերի վրա (հիշողության մեջ, ֆայլերում) կամ առանձին պահեստում (մատչելի տվյալների բազա, Redis):
- Session ID-ի փոխանցում հաճախորդին: Սերվերը ուղարկում է պատասխան հաճախորդին, ներառելով Session ID-ն: Հաճախ օգտագործվող փոխանցման մեթոդներ՝
- Cookie: Սերվերը տեղադրում է cookie՝ Session ID-ով, օգտվողի բրաուզերում: Բրաուզերը ավտոմատ կերպով ուղարկում է այս cookie-ն յուրաքանչյուր հաջորդ հարցման ժամանակ նույն դոմենին:
- URL: Session ID-ն ներառվում է URL-ի պարամետրերում (ավելի քիչ անվտանգ և խորհուրդ է տրվում):
- Թաքնված դաշտ ձևում: Session ID-ն տեղադրվում է թաքնված
<input type="hidden">դաշտում HTML ձևում (օգտագործվում է ձևեր ուղարկելու ժամանակ):
- Հաջորդ հարցումները: Երբ հաճախորդը ուղարկում է հաջորդ հարցումը, այն ներառում է Session ID-ն (օրինակ՝ cookie-ից):
- Օգտագործողի նույնականացում: Սերվերը ստանում է հարցումը, հանում է Session ID-ն և օգտագործում այն համապատասխան տվյալների որոնման համար: Այսպիսով, սերվերը «ճանաչում է» օգտվողին և նրա նախորդ վիճակը:
- Սեսիայի տվյալների թարմացում: Օգտագործողի հետ փոխազդեցության ընթացքում սերվերը կարող է փոփոխել կամ ավելացնել տվյալներ սեսիայի պահեստում, որոնք կապված են ընթացիկ Session ID-ի հետ:
- Սեսիայի ավարտում: Սեսիան կարող է ավարտվել հստակ (օրինակ՝ օգտվողից դուրս գալու ժամանակ) կամ ավտոմատ՝ որոշակի անգործության ժամանակահատվածի ավարտից հետո (սեսիայի ժամանակային սահմանափակում): Սեսիայի ավարտից հետո, Session ID-ի հետ կապված տվյալները ջնջվում են սերվերից:
Հիմնական բաղադրիչներ:
- Session ID: Անվճար նույնականիչ սեսիայի համար:
- Սերվերի պահեստային սեսիաներ: Մասը, որտեղ պահվում են Session ID-ի հետ կապված տվյալները:
- Session ID փոխանցելու մեխանիզմը հաճախորդին: Հաճախ՝ Cookie:
Այս մեխանիզմը թույլ է տալիս վեբ հավելվածներին պահպանել փոխազդեցության կոնտեքստը յուրաքանչյուր օգտվողի հետ ողջ աշխատանքում՝ չնայած HTTP պրոտոկոլի անպատասխան բնույթին։