Co to jest architektura klient-serwer?
Architektura klient-serwer to model budowy systemu informatycznego, w którym zadania są podzielone między dwa typy elementów: klienta i serwer.
- Klient wysyła żądania, np. prośbę o pobranie strony, zapis danych lub zalogowanie użytkownika.
- Serwer odbiera żądania, przetwarza je, korzysta z danych i odsyła odpowiedź.
Najważniejsza cecha tego modelu: dane i główna logika działania systemu zwykle znajdują się po stronie serwera, a klient korzysta z nich przez sieć.
Przykład działania
Typowy przykład to aplikacja internetowa:
- Użytkownik wpisuje adres strony w przeglądarce.
- Przeglądarka, czyli klient, wysyła żądanie do serwera.
- Serwer pobiera dane, wykonuje logikę aplikacji i generuje odpowiedź.
- Klient odbiera odpowiedź i wyświetla ją użytkownikowi.
Cechy architektury klient-serwer
- komunikacja odbywa się zwykle w schemacie żądanie-odpowiedź,
- serwer może obsługiwać wielu klientów jednocześnie,
- dane są często centralnie przechowywane na serwerze,
- klient nie musi znać szczegółów działania serwera,
- łatwiej kontrolować bezpieczeństwo i dostęp do danych.
Czego nie mylić?
Architektura klient-serwer nie oznacza komunikacji bezpośrednio między klientami. Taki model bardziej przypomina sieć peer-to-peer. Serwer nie jest też pasywnym odbiorcą danych — aktywnie przetwarza żądania i odsyła odpowiedzi.