3. Architektury aplikacji internetowych

3.1. Architektura klient - serwer

Architektura klient-serwer jest jednym z najbardziej powszechnych modeli komunikacyjnych w informatyce, szczególnie w kontekście aplikacji internetowych. Opiera się na interakcji między dwoma głównymi elementami: klientem i serwerem. Powszechnie wykorzystywany w środowisku aplikacji webowych protokół HTTP (ang. Hypertext Transfer Protocol) został zaprojektowany do pracy właśnie w architekturze klient - serwer. Tym samym z architekturą klient - serwer mamy do czynienia praktycznie w każdej aplikacji internetowej.

Zasadnicze role w architekturze klient - serwer

Klient
Klient to aplikacja lub urządzenie, które inicjuje połączenie i wysyła żądania do serwera. W kontekście protokołu HTTP, klientem zazwyczaj jest przeglądarka internetowa (np. Google Chrome, Mozilla Firefox), ale może też nim być aplikacja mobilna, program komputerowy, czy nawet urządzenie klasy IoT (Internet of Things). Co do zasady klient nie przechowuje danych ani nie implementuje logiki biznesowej (z drobnymi wyjątkami). Rolą klienta jest zazwyczaj interakcja z użytkownikiem, przesyłanie żądań do serwera oraz prezentacja danych w interfejsie użytkownika.
Serwer
Serwer ma postać systemu komputerowego z uruchomionym odpowiednim oprogramowaniem, dołączonego do sieci internetowej lub lokalnej, i oczekującego na połączenia inicjowane przez klientów. Serwer odbiera żądania od klientów, przetwarza je i odsyła odpowiedzi. Serwer przechowuje dane, pliki, i inne zasoby, a także implementuje logikę aplikacji.

Przeczytaj także: rozdział poświęcony tworzeniu oprogramowania dla serwera (tzw. backend)