Python → Python za web → Klijent-server model


Klijent-server model u web programiranju


Lekcija 3 od 14

Jedan od najvažnijih koncepata u web programiranju je klijent-server model.

Ovaj model opisuje način na koji aplikacije na internetu komuniciraju međusobno.

Klijent-server model je arhitektura u kojoj klijent šalje zahtev serveru, a server vraća odgovor.

Ko je klijent?

Klijent je program koji šalje zahteve serveru. Najčešće je to web pregledač koji koristimo svakog dana.

  • Google Chrome
  • Mozilla Firefox
  • Microsoft Edge
  • Safari

Kada korisnik otvori neku web stranicu, browser šalje zahtev serveru.


Ko je server?

Server je računar ili aplikacija koja prima zahteve i šalje odgovore.

U Python web programiranju server je program napisan u Pythonu koji obrađuje zahteve korisnika.

Osnovni tok komunikacije
Korisnik → Browser (klijent) → HTTP zahtev → Server → HTTP odgovor → Browser

Primer iz svakodnevnog života

Klijent-server model možemo uporediti sa naručivanjem hrane u restoranu.

  • Vi ste klijent koji naručuje hranu
  • Konobar prenosi zahtev
  • Kuhinja priprema hranu
  • Hrana se vraća klijentu

U web svetu:

  • browser je klijent
  • internet prenosi zahtev
  • server obrađuje zahtev
  • browser prikazuje rezultat
Ovaj model omogućava da milioni korisnika istovremeno koriste iste web aplikacije.

Primer web zahteva

Kada otvorimo neku stranicu, browser šalje HTTP zahtev serveru.


GET /index.html HTTP/1.1
Host: moj-sajt.com

Server zatim vraća odgovor sa sadržajem stranice.


HTTP/1.1 200 OK
Content-Type: text/html

<h1>Dobrodošli na moj sajt</h1>

Kako Python koristi klijent-server model?

Python web framework-i omogućavaju programerima da napišu kod koji odgovara na zahteve korisnika.

Na primer, Flask aplikacija može definisati šta server treba da uradi kada korisnik poseti određeni URL.


from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "Dobrodošli na Python server"

app.run()

Kada korisnik otvori početnu stranicu, server vraća tekst koji smo definisali u funkciji.

U sledećim lekcijama napravićemo naš prvi Python web server koristeći Flask.

Prednosti klijent-server modela

  • centralizovana obrada podataka
  • lakše održavanje aplikacije
  • mogućnost rada sa velikim brojem korisnika
  • veća sigurnost podataka

Primeri aplikacija koje koriste ovaj model

  • društvene mreže
  • online prodavnice
  • email servisi
  • web portali
  • online igre
Gotovo sve moderne internet aplikacije koriste klijent-server arhitekturu.

Povezane lekcije


Često postavljana pitanja

Šta je klijent-server model?

To je način komunikacije gde klijent šalje zahtev, a server obrađuje zahtev i vraća odgovor.

Da li je browser klijent?

Da. Browser je najčešći primer klijenta u web aplikacijama.

Šta radi server u web aplikaciji?

Server obrađuje zahteve korisnika, komunicira sa bazom podataka i vraća rezultat.

Da li Python može da bude server?

Da. Python uz pomoć framework-a kao što su Flask i Django može da pokreće web servere.