Kapitola1
Webové aplikace
Název těchto učebních materiálů je „Objektové programování pro web“. Řekněme si něco o jednotlivých slovech tohoto názvu. Programování je činnost, při které vzniká software (programové vybavení) a pokud užitečně slouží uživateli pro jakýkoliv obor jeho činnosti, tak tomu říkáme aplikace (aplikační software). Pokud jsou tyto aplikace v prostředí webu, říkáme jim webové aplikace. V těchto studijních materiálech se tedy budeme zabývat tvorbou webových aplikací dle OOP (Objektově orientované programování). O objektovém programování si řekneme později. Nyní se musíme nejprve seznámit se základními pojmy, principy webové komunikace, zásady tvorby webových aplikací…
Webová aplikace je tedy aplikační programové vybavení běžící v prostředí webu. Web (World wide web, www, v překladu „světová rozsáhlá síť“) je ona „celosvětová pavučina“, což chápeme jako systém na celosvětové síti Internet, který se stará o prohlížení, ukládání a odkazování dokumentů. Celý tento systém dokumentů tvoří hypertext, což je nelineárně strukturovaný text obsahující odkazy (hyperlinky) na své vlastní části. Běžně jsou tyto dokumenty známy jako webové stránky. Za posledních dvacet let se však díky pokroku v moderních technologiích webové stránky velmi změnily. Nyní se obvykle již nejedná o statický dokument (webovou stránku), ale již právě o plně interaktivní webovou aplikaci, která je mnohdy k nerozeznání od běžné desktopové aplikace. A to, že se jedná o webovou aplikaci, poznáme jen dle toho, že je spuštěna ve webovém prohlížeči (internetovém prohlížeči, webovém browseru). Příkladem nám mohou být moderní sociální sítě, webové obchody (elektronické obchody, eshopy), cloudové služby, služby vyhledávání dopravního spojení, emailoví klienti, hry, dokonce i běžný kancelářský software v podobě textového editoru, tabulkového procesoru a mnoho dalšího.
V předcházejícím odstavci, který nám osvětloval, co jsou webové aplikace, bylo použito mnoho termínů, které byly v kontextu odstavce vysvětleny jen velmi minimalisticky nebo vůbec. Nyní si uděláme jednoduchý přehled základních pojmů, které nás budou doprovázet v průběhu celého tohoto studijního materiálu.
Internet je celosvětová počítačová síť (síť sítí). Přesněji můžeme říci, že je to celý systém propojených počítačových sítí. Tento systém běží díky rodině protokolů TCP/IP (Transmission Control Protocol/Internet Protocol – „přenosový protokol transportní vrstvy/protokol síťové vrstvy“), což není nic jiného než soubor pravidel pro komunikaci mezi jednotlivými uzly sítě na všech logických vrstvách. Internet je využíván pro mnoho služeb. Typickým příkladem je právě služba www nebo elektronická pošta (emaily). Počátky internetu sahají až do konců šedesátých let minulého století, kdy vznikla síť ARPANET, která byla financována ministerstvem obrany Spojených států amerických a měla za úkol zajistit decentralizované propojení počítačů.
Web je informační systém (služba) v síti internet, díky které můžeme prohlížet, ukládat a odkazovat na dokumenty v rámci celého světa (soustava propojených hypertextových dokumentů). Web vynalezl v roce 1989 sir Tim Berners-Lee. Web je postaven na třech základních pilířích, kterými jsou protokol HTTP (Hypertext Transfer Protocol), značkovací jazyk HTML (Hypertext Markup Language) a lokátor zdrojů URL (Uniform Resource Locator).
W3C (World Wide Web Consortium) je mezinárodní konsorcium (sdružení lidí) založené za účelem vývoje webových standardů. Zabývá se například přístupností webů, vzděláváním, standardy HTML, XHTML (eXtensible Hypertext Markup Language), CSS (Cascading Style Sheets – Kaskádové styly), XML (Extensible Markup Language), SVG (Scalable Vector Graphics), DOM (Document Object Model – Objektový model dokumentu) a dalšími. Konsorcium založil roku 1994 Tim Berners-Lee, který doposud konsorciu předsedá a je často označován jako „otec webu“.
Zajímavost
Za „otce internetu“ je označován americký informatik Vint Cerf, který spolu s Bobem Kahnem vytvořili komunikační protokoly TCP/IP.
Často je pod pojmem web chápána webová stránka a mezi uživateli této služby je to velmi rozšířené. To nepokládám za špatné a sám to budu v těchto materiálech používat například při vysvětlování pojmu „dynamický web“, kde tím myslím dynamickou webovou stránku a nikoliv celou službu v síti internet. Věřím, že to nebude matoucí a každý z kontextu hned pochopí, co je termínem web právě myšleno.
Hypertext je nelineárně strukturovaný text obsahující odkazy na své vlastní části. Nemá tedy začátek ani konec. Hypertext tvoří obsah webu (text, obrázky, video, audio…), ke kterému máme přístup díky protokolu HTTP a vidět jej můžeme obvykle v podobě webových stránek.
HTTP a HTTPS jsou protokoly z rodiny protokolů TCP/IP, které se starají o komunikaci mezi webovým klientem a webovým serverem. Ze samotného názvu je patrné, že se jedná o protokoly určené pro přenos hypertextu. U protokolu HTTPS je oproti HTTP komunikace šifrovaná pomocí TLS (Transport Layer Security) nebo SSL (Secure Sockets Layer). Zabezpečená verze protokolu je doporučovaná nejen pro webové aplikace, kde se internetem mezi klientem a serverem mohou přenášet citlivá data, ale i pro běžné webové stránky. Hostingové firmy nabízejí běžně certifikáty bezplatně. Protokol HTTP používá obvykle port TCP/80 a HTTPS pak TCP/443.
URL je textová adresa jakéhokoliv zdroje dat v prostředí webu. URL adresou tak můžeme určit nejen webovou stránku, ale i obrázky, soubory kaskádových stylů, java skriptů a veškerý další webový obsah. Adresa se skládá z několika povinných a nepovinných částí, které mají jasně stanovená místa.
Jako příklad si uveďme: https://www.example.com:80/app/index.php?p=34&l=cz. Na začátku je uveden přenosový protokol, který pokud se neuvede, bude standardně HTTP. Poté následuje povinná doménová adresa serveru, která může být zapsána i v podobě číselné IP adresy. Za TLD (Top Level Domain) .cz je uvedeno číslo portu 80. Pokud se neuvede, tak je právě 80 standardem, na kterém poslouchá webový server. Za portem pak může být uveden přímo požadovaný soubor včetně adresářů. Pokud se neuvede, webový server hledá ve výchozím adresáři obvykle soubory index.html, index.php nebo default.html atp. Jako poslední jsou za otazníkem předávány GET parametry „p“ a „l“, které jsou odděleny „&“ (et, ampersand). Výše uvedený příklad URL adresy není však dobře zapamatovatelný a může vypadat klidně i komplikovaněji, a proto je jistě uživatelsky přívětivější používání tzv. COOL URL adres. Taková adresa by pak vypadala například: https://www.example.com/uloha-na-url. Takováto adresa je vhodná i pro internetové boty (crawler, spider, gatherer), kteří web navštěvují a indexují. Do databází se tak URL adresa dostává i s klíčovými slovy.
Webový server (Webserver, HTTP server) je označení pro počítač, který nabízí webové služby. Webserver vyhovuje HTTP požadavkům nespočtu webových klientů. Od klienta přijme HTTP požadavek, a pokud je to možné, pošle cíl specifikovaný URL adresou uvedenou v požadavku. Jako webserver bývá označován i počítačový program, který na serveru plní výše popsanou roli. Typickými příklady takovýchto software jsou Apache HTTP Server a Microsoft IIS (Internet Information Services). Pro podporu webových aplikací běží obvykle na webových serverech i SŘBD (Systém řízení báze dat), které známe v angličtině jako DBMS (Database Management System) a programový interpret. Nejčastějšími představiteli SŘBD jsou dle mé zkušenosti MySQL, MariaDB, MS SQL Server a nejčastějšími programovými jazyky pak PHP (rekurzivní zkratka PHP: Hypertext Preprocessor), Python, ASP a Java.
Webový klient využívá pomocí protokolu HTTP služeb webového serveru. Nejčastějšími příklady jsou webové prohlížeče (browser). Typickými konkrétními představiteli jsou pak Google Chrome (Blink), Mozilla Firefox (Gecko), Internet Explorer (Trident), Microsoft Edge (EdgeHTML/ Chromium) a Opera (Blink). V závorce jsou uvedená zobrazovací jádra, na kterých jednotlivé prohlížeče běží. Webový browser zobrazuje graficky nebo textově obsah webu. Standardně musí každý browser zvládnout technologie HTML, JavaScript a CSS. Dají se rozšířit o zásuvné moduly podporující Java applety, Flash animace…