Junior
Müştəri və server arasında qarşılıqlı əlaqə necə baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
Əlaqə ümumiyyətlə "müştəri-server" modeli ilə HTTP/HTTPS protokolu vasitəsilə baş verir:
- Müştəri (brauzer) sorğu göndərir. Sorğu aşağıdakılardan ibarətdir:
- Metod (GET, POST, PUT, DELETE və s.)
- Sorğulanan resursun URL-si
- Başlıqlar (müştəri haqqında məlumatlar, məlumat növü, icazə və s.)
- Sorğu gövdəsi (POST kimi metodlar üçün, məlumatlarla)
- Server sorğunu emal edir.
- Sorğunu alır və analiz edir.
- Resurs və əməliyyatı müəyyən edir.
- Lazım gələrsə, məlumatlara çıxış edir (məlumat bazası, fayl sistemi və s.).
- Cavab hazırlayır.
- Server cavab göndərir. Cavab aşağıdakılardan ibarətdir:
- HTTP status kodu (200 OK, 404 Not Found, 500 Internal Server Error və s.)
- Cavab başlıqları (məzmun tipi, keşik, kukilər və s.)
- Cavab gövdəsi (HTML, JSON, XML, şəkil və s.)
- Müştəri cavabı alır və emal edir.
- Cavabı analiz edir.
- Məzmunu göstərir (məsələn, HTML səhifəsini render edir).
- JavaScript-i icra edir, məlumatları emal edir.
GET sorğusunun nümunəsi:
GET /api/users HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (...)
Accept: application/json
GET sorğusuna cavab nümunəsi:
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" }
]
Daha interaktiv əlaqə üçün digər mexanizmlər də istifadə olunur:
- WebSocket: Davamlı iki tərəfli əlaqə, real vaxtda məlumat mübadiləsi üçün (məsələn, söhbətlər).
- Server-Sent Events (SSE): Serverdən müştəriyə tək tərəfli əlaqə, yeniləmələri axın şəklində almaq üçün.
- Polling: Müştəri mütəmadi olaraq serverə sorğu göndərir, yeniləmələri yoxlamaq üçün.
- Long Polling: Müştəri sorğu göndərir, server onu açıq saxlayır, məlumatlar gələnə və ya vaxt aşımı başa çatana qədər, sonra cavab göndərir.
Veb tətbiqlər kontekstində, brauzer həmçinin ilkin HTML-i aldıqdan sonra CSS, JS, şəkil kimi resursları ayrıca HTTP sorğuları ilə yükləyir. JavaScript də API-yə (AJAX) dinamik olaraq əlavə sorğular göndərə bilər, bu da səhifəni yeniləmədən məlumat almağa və göndərməyə imkan verir.