Junior
Kuidas toimub kliendi ja serveri vaheline suhtlus?
sobes.tech AI
Vastus AI-lt
Koostöö toimub HTTP/HTTPS protokolli kaudu, tavaliselt "klient-server" mudelis:
- Klient (brauser) saadab päringu. Päring sisaldab:
- Meetodit (GET, POST, PUT, DELETE ja teised)
- Nõutava ressursi URL-i
- Pealkirju (teave kliendi, andmetüübi, autoriseerimise ja muu kohta)
- Päringu keha (näiteks POST meetodite puhul, andmetega)
- Server töötleb päringu.
- Saab ja analüüsib päringut.
- Määrab ressursi ja operatsiooni.
- Vajadusel pöördub andmetele (andmebaas, failisüsteem ja muu)
- Koostab vastuse.
- Server saadab vastuse. Vastus sisaldab:
- HTTP staatusekoodi (200 OK, 404 Not Found, 500 Internal Server Error ja teised)
- Vastuse pealkirju (sisutüüp, vahemälu, küpsised ja muu)
- Vastuse keha (HTML, JSON, XML, pilt ja muu)
- Klient saab ja töötleb vastuse.
- Analüüsib vastust.
- Kuvab sisu (näiteks HTML-lehekülg).
- Täidab JavaScripti, töötleb andmeid.
Näide GET-päringust:
GET /api/users HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (...)
Accept: application/json
Näide vastusest GET-päringule:
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" }
]
Samuti kasutatakse teisi mehhanisme, et võimaldada rohkem interaktiivset suhtlust:
- WebSocket: püsiv kahepoolne ühendus reaalajas andmevahetuseks (näiteks vestlused)
- Server-Sent Events (SSE): ühe suunaga ühendus serverist kliendile, et saada uuenduste voog
- Polling: klient saadab perioodiliselt päringuid serverile, et kontrollida uuendusi
- Long Polling: klient saadab päringu, server hoiab seda avatud kuni andmed ilmuvad või aeg lõpeb, siis saadab vastuse
Veebirakenduste kontekstis laadib brauser ka ressursse (CSS, JS, pildid) eraldi HTTP-päringutega pärast algset HTML-i saamist. JavaScript võib dünaamiliselt saata täiendavaid päringuid API-le (AJAX), et saada või saata andmeid ilma lehe uuesti laadimata.