Sobes.tech
Junior

Ինչպես է տեղի ունենում հաճախորդի և սերվերի փոխազդեցությունը?

sobes.tech AI

Պատասխան AI-ից

Ինտերակցիան տեղի է ունենում HTTP/HTTPS պրոտոկոլով, սովորաբար «կլիենտ-սերվեր» մոդելում.

  1. Կլիենտը (բրաուզերը) ուղարկում է հարցում։ Հարցումը պարունակում է.
    • մեթոդ (GET, POST, PUT, DELETE և այլն)
    • խնդրող ռեսուրսի URL
    • գլխիկներ (միջնորդություն մասին, տվյալների տեսակ, թույլտվություն և այլն)
    • հարցման մարմին (POST մեթոդների համար, տվյալներով)
  2. Սերվերը մշակում է հարցումը։
    • ստանում և վերլուծում է հարցումը։
    • որոշում է ռեսուրսը և գործողությունը։
    • դիմում է տվյալների (մասին տվյալների բազա, ֆայլային համակարգ և այլն), եթե անհրաժեշտ է։
    • ձևավորում է պատասխան։
  3. Սերվերը ուղարկում է պատասխան։ Պատասխանն պարունակում է.
    • HTTP կարգավիճակի կոդ (200 OK, 404 Not Found, 500 Internal Server Error և այլն)
    • պատասխան գլխիկներ (տիպը, կեշավորումը, կուկի և այլն)
    • պատասխան մարմին (HTML, JSON, XML, պատկեր և այլն)
  4. Կլիենտը ստանում և մշակում է պատասխան։
    • վերլուծում է պատասխանն։
    • ցուցադրում է պարունակությունը (օրինակ՝ 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)՝ տվյալներ ստանալու կամ ուղարկելու համար առանց էջի վերանայման։