SPA, MPA, request-response, HTTP(S), návratové kódy, metody HTTP
Hranice je rozmazaná, ale principiální rozdíl je v tom, co uživatel s obsahem dělá:
| Webová stránka | Webová aplikace | |
|---|---|---|
| Účel | Zobrazení informací | Vykonávání úkolů |
| Interaktivita | Minimální (formuláře, odkazy) | Vysoká (přihlášení, správa dat, real-time) |
| Obsah | Převážně statický | Dynamický, personalizovaný |
| Stav | Pomíjivý | Persistentní (user profile, data) |
| Příklad | Blog, zpravodajský portál, dokumentace | Gmail, Notion, Figma, e-shop |
V praxi nejsou ostré hranice: zpravodajský web má komentáře (kus aplikace), aplikace má marketingové stránky (kus webu).
Server pošle prakticky prázdný HTML s odkazem na JS bundle. Veškerý rendering probíhá v prohlížeči poté, co se stáhne a spustí JavaScript.

| Plusy | Mínusy |
|---|---|
| Plynulé navigace (žádné refreshe) | Pomalé první načítání |
| Snadné offline funkce | Horší SEO bez prerendering |
| Klasická SPA architektura | Vyžaduje JS, slabší zařízení trpí |
Příklad: čistá React/Vue/Angular SPA bez SSR.
Server vyrenderuje kompletní HTML a pošle ho klientovi. JavaScript se pak "připne" k existujícímu DOMu (proces zvaný hydration).

| Plusy | Mínusy |
|---|---|
| Rychlé první načtení | Vyšší zátěž serveru |
| Excelentní SEO | Komplikovanější deploy |
| Funguje i bez JS | "Hydration mismatch" debugování |
Příklad: Next.js (App Router s getServerSideProps), Remix, Nuxt.
HTML se vygeneruje při buildu, ne při requestu. Server vlastně nepotřebuješ: výsledné soubory si CDN obslouží.