• V dnešní době je již těžké vymezit co je webová aplikace a co ještě ne.
  • Původně byly www stránky statické a za webovou aplikaci se označovala jakákoliv stránka obsahující script. Dnes scripty používají snad všechny webové stránky.
    • Proto je těžké určit hranici.
  • Většina webových aplikací ale využívá kromě webového serveru ještě aplikační a navíc například databázi.
  • Obecně lze říci, že webová aplikace je webová stránka, která ve velké míře využívá programový kód na straně klienta nebo serveru.

  • V dnešní době nemají ale webové aplikace podobu pouze dynamické webové stránky, ale mohou být realizovány jako mobilní nebo desktopové aplikace.
  • Poněkud přesněji je tedy možné webovou aplikaci vymezit jako aplikaci, která potřebuje pro neomezené fungování přístup k Internetu nebo jádro prohlížeče.

Statická webová stránka

Webová aplikace

Výhody webových aplikací

  • Dostupně po internetu - rychlé aktualizace, možnost vynucení aktualizace
  • Dobrá škálovatelnost - možno využít výkonu serverů a není omezena na zdroje zařízení
  • Multiplatformnost

Nevýhody

  • Bezpečnost - náročné na zajištění kvůli vzdálenému přístupu
  • Technologicky náročné - velké množství technologií, které je třeba ovládat

Výčet technologií

Front-end technologie

  • Front-end technologie se zaměřují na vývoj části webové aplikace, se kterou interagují uživatelé.
  • HTML (HyperText Markup Language)
    • Jazyk pro vytváření struktury webových stránek.
    • Umožňuje definovat různé prvky jako text, obrázky, odkazy, formuláře atd.
  • CSS (Cascading Style Sheets)
    • Používá se pro stylování HTML dokumentů.
    • Umožňuje definovat layout, barvy, písma a další vizuální aspekty.
  • JavaScript
    • Skriptovací jazyk pro vytváření interaktivních webových stránek.
    • Umožňuje manipulaci s DOM (Document Object Model), provádění asynchronních operací (AJAX) a mnoho dalšího.
  • Front-end frameworky a knihovny
    • React - Knihovna pro budování uživatelských rozhraní
    • Angular - Framework pro vývoj webových aplikací
    • Vue.js - Progresivní framework pro budování uživatelských rozhraní

Back-end technologie

  • Back-end technologie se zaměřují na serverovou část webové aplikace, která zajišťuje logiku, databázové operace, autentizaci a další funkcionality.
  • Programovací jazyky
    • JavaScript (Node.js) - JavaScript běžící na serveru, umožňuje vytvářet škálovatelné a rychlé aplikace.
    • Python (Django, Flask)
    • PHP (Laravel)
    • Ruby (Ruby or Rails)
  • Webové servery
    • Apache
    • Nginx
  • Databáze
    • Relační databáze (SQL) - MySQL, PostgreSQL, …
    • NoSQL databáze - MongoDB, Redis, …

DevOps a nasazení

  • DevOps praktiky a nástroje jsou důležité pro automatizaci, monitorování a správu aplikací po nasazení.
  • Kontinuální integrace a kontinuální nasazení (CI/CD)
    • Jenkins - Automatizační server pro CI/CD
    • GitLab CI/CD - Integrované CI/CD v GitLab platformě
  • Kontejnerizace a orchestrace
    • Docker - Platforma pro vytváření, nasazení a správu kontejnerů.
    • Kubernetes - Systém pro orchestrace kontejnerizovaných aplikací, umožňuje automatizaci nasazení, škálování a správu kontejnerů.
  • Cloudové služby
    • AWS (Amazon Web Services) - Široká škála služeb pro hostování, databáze, úložiště a další.
    • Microsoft Azure
    • GCP (Google Cloud Platform)

Bezpečnost

  • Bezpečnost je klíčovou součástí vývoje webových aplikací, zahrnuje ochranu proti různým typům útoků a zajištění integrity a důvěrnosti dat.
  • Autentizace a autorizace
    • OAuth, OpenID - Standardní protokoly pro autentizaci
  • Bezpečnostní praktiky
    • HTTPS - Šifrování přenosu dat pomocí SSL/TLS.

Předchozí: Zařazení jazyka C mezi ostatní jazyky, výhody a nevýhody Následující: Architektura webové aplikace a problematika škálovatelnosti Celý okruh: 3. Programovací jazyky a programování