🌍 Kako Funkcioniše Web?
Kada u browser unesete adresu (npr. www.javnauprava.gov.ba), dešava se niz kompleksnih
procesa u pozadini koji omogućavaju da vam se prikaže stranica. Ovaj proces traje milisekunde, ali
uključuje komunikaciju između vašeg računara i servera širom svijeta.
Ciklus zahtjeva: Od browsera do servera i nazad
1. DNS (Domain Name System)
Računari ne razumiju imena kao što je google.com. Oni komuniciraju koristeći IP
adrese (npr. 142.250.180.206).
DNS je imenik interneta koji prevodi ljudima razumljiva imena (domene) u IP adrese.
- Browser Cache: Browser prvo provjerava da li već zna IP adresu.
- OS Cache: Ako browser ne zna, pita operativni sistem.
- DNS Resolver: Ako ni OS ne zna, šalje se upit DNS serveru (obično vašem ISP-u ili Google-ovom 8.8.8.8).
2. HTTP Protokol
Nakon što browser dobije IP adresu, on uspostavlja konekciju sa serverom i šalje HTTP Zahtjev (Request). HTTP (HyperText Transfer Protocol) je jezik kojim browser i server razgovaraju.
GET /index.html HTTP/1.1
Host: www.javnauprava.gov.ba
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Server: Microsoft-IIS/10.0
...sadržaj stranice...
🖥️ Web Serveri
Web server je softver koji sluša zahtjeve na određenom portu (obično 80 za HTTP ili 443 za HTTPS) i vraća traženi sadržaj.
| Server | Platforma | Opis |
|---|---|---|
| IIS (Internet Information Services) | Windows | Microsoftov server. Duboko integrisan sa Windowsom. Pokreće ASP.NET aplikacije. |
| Apache | Linux/Windows | Najstariji i vrlo popularan open-source server. Koristi se često za PHP (LAMP stack). |
| Nginx | Linux/Windows | Poznat po visokim performansama. Često se koristi kao Reverse Proxy. |
| Tomcat | Cross-platform | Server za Java aplikacije (Servlets/JSP). |
🚀 Kestrel i Reverse Proxy
U modernom .NET svijetu (.NET Core, .NET 5+), stvari funkcionišu malo drugačije. ASP.NET Core aplikacije po defaultu koriste Kestrel - super-brzi, cross-platform web server ugrađen u samu aplikaciju.
🔄 Reverse Proxy Konfiguracija
Iako je Kestrel brz, nije dizajniran da bude direktno izložen internetu (security hardening, upravljanje certifikatima). Zato se ispred njega postavlja "tradicionalni" server (IIS na Windowsu ili Nginx na Linuxu) koji djeluje kao Reverse Proxy:
- Zahtjev dolazi na IIS (Port 80/443).
- IIS prosljeđuje zahtjev lokalno na Kestrel (npr. localhost:5000).
- Kestrel obrađuje C# logiku i vraća odgovor IIS-u.
- IIS vraća odgovor korisniku.
Node.js i Moderni Web
Slično kao Kestrel, Node.js aplikacije su procesi servera koji "slušaju" na portu. Za razliku od klasičnog statičkog sajta (gdje server samo šalje fajl sa diska), Node.js (i ASP.NET) izvršava kod za svaki zahtjev. To omogućava dinamički sadržaj, API pozive i komunikaciju sa bazom u realnom vremenu.
📜 Kratka Historija ASP.NET-a
- Video smo kako radi Web. A kako smo došli do ovdje?
3. ASP.NET MVC (2009)
Ovo što učimo! Povratak osnovama - potpuna kontrola nad HTML-om, HTTP-om i separacija koda (Model-View-Controller). Odgovor na modernije framework-e kao što je Ruby on Rails.
🕰️ Historija .NET Framework-a
Da bismo razumjeli zašto danas postoje ".NET Framework", ".NET Core" i samo ".NET", moramo pogledati historiju.
Evolucija .NET-a: Od Windows-only do Cross-Platform
🔑 Ključne Prekretnice
- .NET Framework 1.0 - 4.8 (2002-2019): Dizajniran samo za Windows. Stabilan, zreo, ali vezan za OS. Na ovome radi većina starih državnih aplikacija.
- .NET Core 1.0 - 3.1 (2016-2019): Potpuni "rewrite". Radi na Linuxu, Mac-u i Windowsu. Brži, lakši, modularniji.
- .NET 5+ (2020-danas): Ujedinjenje. Nema više "Core" u imenu, to je sada samo ".NET". Ovo je budućnost platforme.