====== Architektura Klient-Server ====== **Klient-server** je síťový model, ve kterém jsou jednotlivá zařízení v síti rozdělena do dvou jasně definovaných rolí. Komunikace obvykle probíhá stylem "dotaz–odpověď" (request-response). Tento model umožňuje centrální správu dat a efektivní sdílení výpočetních zdrojů. ---- ====== Hlavní role v systému ====== ===== 1. Klient (User-Side) ===== Klient je zařízení nebo aplikace, která iniciuje kontakt se serverem. * **Funkce:** Odesílá požadavky, přijímá odpovědi a prezentuje data uživateli. * **Příklady:** Webový prohlížeč (Chrome, Firefox), e-mailový klient (Outlook), mobilní aplikace. ===== 2. Server (Service-Side) ===== Server je výkonný počítač nebo program, který neustále běží a čeká na příchozí požadavky. * **Funkce:** Zpracovává požadavky, provádí výpočty, spravuje databáze a odesílá výsledky klientům. * **Vlastnost:** Jeden server může obsluhovat stovky až miliony klientů současně. ---- ====== Jak probíhá komunikace? ====== Celý proces lze rozdělit do čtyř základních kroků: 1. **Požadavek (Request):** Klient pošle přes síť zprávu serveru (např. "Chci zobrazit stránku google.com"). 2. **Zpracování:** Server přijme požadavek, ověří identitu klienta a vyhledá potřebná data. 3. **Odpověď (Response):** Server pošle data zpět klientovi (např. HTML kód stránky). 4. **Zobrazení:** Klient přijatá data interpretuje a zobrazí uživateli. ---- ====== Typy Klient-Server architektur ====== Model se dělí podle toho, jak moc práce odvádí klient a jak moc server: ^ Typ ^ Popis ^ | **Thin Client (Tenký klient)** | Klient slouží jen pro zobrazení, téměř veškerý výpočet probíhá na serveru. | | **Thick Client (Tlustý klient)** | Klient sám provádí většinu logiky a výpočtů, server používá jen pro ukládání dat. | | **2-Tier (Dvouvrstvá)** | Klient komunikuje přímo s databázovým serverem. | | **3-Tier (Třívrstvá)** | Mezi klienta a databázi je vložen aplikační server (nejčastější u webových aplikací). | ---- ====== Výhody a nevýhody ====== **Výhody:** * **Centralizace:** Data jsou na jednom místě, což usnadňuje zálohování a správu práv. * **Škálovatelnost:** Výkon lze zvýšit upgradem serveru nebo přidáním dalších serverů. * **Bezpečnost:** Server může kontrolovat přístup ke zdrojům. **Nevýhody:** * **Single Point of Failure:** Pokud selže server, celá síť (všichni klienti) přestane fungovat. * **Náklady:** Výkonné servery a jejich správa jsou drahé. * **Zahlcení:** Pokud se připojí příliš mnoho klientů naráz, server se může zpomalit nebo spadnout ([[dos_utok|DoS]]). ---- ====== Srovnání: Klient-Server vs. Peer-to-Peer (P2P) ====== Zatímco klient-server má jasnou hierarchii, v modelu **P2P** jsou si všechna zařízení rovna a každé může být zároveň klientem i serverem (např. BitTorrent). | Vlastnost | Klient-Server | Peer-to-Peer (P2P) | | --- | --- | --- | | **Správa** | Centrální | Decentralizovaná | | **Závislost** | Vysoká na serveru | Nízká (síť funguje i při výpadku uzlu) | | **Použití** | Webové stránky, firemní sítě | Sdílení souborů, kryptoměny | ---- //Související pojmy: Server, IP adresa, HTTP, P2P, DoS útok, Databáze, Cloud Computing.//