Sobes.tech
Junior

Jak probíhá interakce mezi klientem a serverem?

sobes.tech AI

Odpověď od AI

Interakce probíhá prostřednictvím protokolu HTTP/HTTPS, obvykle v modelu "klient-server":

  1. Klient (prohlížeč) odešle požadavek. Požadavek obsahuje:
    • Metodu (GET, POST, PUT, DELETE atd.)
    • URL požadovaného zdroje
    • Hlavičky (informace o klientovi, typ dat, autorizace atd.)
    • Tělo požadavku (pro metody typu POST, s daty)
  2. Server zpracovává požadavek.
    • Přijímá a analyzuje požadavek.
    • Určuje zdroj a operaci.
    • Přistupuje k datům (databáze, souborový systém atd.), pokud je potřeba.
    • Vytváří odpověď.
  3. Server odesílá odpověď. Odpověď obsahuje:
    • Stavový kód HTTP (200 OK, 404 Not Found, 500 Internal Server Error atd.)
    • Hlavičky odpovědi (typ obsahu, cachování, cookies atd.)
    • Tělo odpovědi (HTML, JSON, XML, obrázek atd.)
  4. Klient přijímá a zpracovává odpověď.
    • Analyzuje odpověď.
    • Zobrazuje obsah (například, renderuje HTML stránku).
    • Spouští JavaScript, zpracovává data.

Příklad GET požadavku:

GET /api/users HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (...)
Accept: application/json

Příklad odpovědi na GET požadavek:

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" }
]

Pro ještě interaktivnější komunikaci se používají i další mechanismy:

  • WebSocket: Trvalé obousměrné spojení pro výměnu dat v reálném čase (například chaty).
  • Server-Sent Events (SSE): Jednosměrné spojení ze serveru na klienta pro příjem toku aktualizací.
  • Polling: Klient periodicky posílá požadavky na server, aby zkontroloval aktualizace.
  • Long Polling: Klient odešle požadavek, server jej udrží otevřený, dokud se neobjeví data nebo nevyprší časový limit, poté odešle odpověď.

V kontextu webových aplikací načítá prohlížeč také zdroje (CSS, JS, obrázky) samostatnými HTTP požadavky po obdržení počátečního HTML. JavaScript může také dynamicky odesílat další požadavky na API (AJAX), aby získal nebo odeslal data bez obnovení stránky.