Junior
Ինչպես է տեղի ունենում հաճախորդի և սերվերի փոխազդեցությունը?
sobes.tech AI
Պատասխան AI-ից
Ինտերակցիան տեղի է ունենում HTTP/HTTPS պրոտոկոլով, սովորաբար «կլիենտ-սերվեր» մոդելում.
- Կլիենտը (բրաուզերը) ուղարկում է հարցում։ Հարցումը պարունակում է.
- մեթոդ (GET, POST, PUT, DELETE և այլն)
- խնդրող ռեսուրսի URL
- գլխիկներ (միջնորդություն մասին, տվյալների տեսակ, թույլտվություն և այլն)
- հարցման մարմին (POST մեթոդների համար, տվյալներով)
- Սերվերը մշակում է հարցումը։
- ստանում և վերլուծում է հարցումը։
- որոշում է ռեսուրսը և գործողությունը։
- դիմում է տվյալների (մասին տվյալների բազա, ֆայլային համակարգ և այլն), եթե անհրաժեշտ է։
- ձևավորում է պատասխան։
- Սերվերը ուղարկում է պատասխան։ Պատասխանն պարունակում է.
- HTTP կարգավիճակի կոդ (200 OK, 404 Not Found, 500 Internal Server Error և այլն)
- պատասխան գլխիկներ (տիպը, կեշավորումը, կուկի և այլն)
- պատասխան մարմին (HTML, JSON, XML, պատկեր և այլն)
- Կլիենտը ստանում և մշակում է պատասխան։
- վերլուծում է պատասխանն։
- ցուցադրում է պարունակությունը (օրինակ՝ HTML էջը ռենդերավորում է)
- իրականացնում է JavaScript, մշակում է տվյալները։
Օրինակ GET հարցում՝
GET /api/users HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (...)
Accept: application/json
Օրինակ պատասխան՝ GET հարցման համար՝
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 150
Cache-Control: max-age=3600
[
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" }
]
Այլ մեխանիզմներ ևս օգտագործվում են ավելի ինտերակտիվ փոխազդեցության համար՝
- WebSocket: Հաստատուն երկկողմանի կապ՝ տվյալների փոխանակման համար իրական ժամանակում (օրինակ՝ չատեր)
- Server-Sent Events (SSE): Միակողմանի կապ սերվերից դեպի հաճախորդ՝ թարմացումների հոսք ստանալու համար
- Polling: Հաճախորդը ժամանակ առ ժամանակ ուղարկում է հարցումներ սերվերին՝ ստուգելու համար թարմացումների առկայությունը
- Long Polling: Հաճախորդը ուղարկում է հարցում, սերվերը պահում է այն բաց մինչև տվյալների հայտնվելը կամ ժամանակավրեպությունը, ապա ուղարկում պատասխան
Համապատասխան վեբ հավելվածների կոնտեքստում, բրաուզերը նաև բեռնում է ռեսուրսներ (CSS, JS, պատկերներ) առանձին HTTP հարցումներով՝ ստանալով սկզբնական HTML-ը։ JavaScript-ը կարող է դինամիկ կերպով ուղարկել լրացուցիչ հարցումներ API-ին (AJAX)՝ տվյալներ ստանալու կամ ուղարկելու համար առանց էջի վերանայման։