Webová aplikace je aplikace typu klient-server , ve které klient komunikuje s webovým serverem pomocí prohlížeče . Logika webové aplikace je distribuována mezi serverem a klientem, data jsou uložena převážně na serveru, informace se vyměňují po síti . Jednou z výhod tohoto přístupu je, že klienti jsou nezávislí na konkrétním operačním systému uživatele , takže webové aplikace jsou multiplatformní služby.
Webové aplikace se staly široce používanými koncem 90. let a začátkem 21. století .
Významnou výhodou vytváření webových aplikací pro podporu standardní funkčnosti prohlížeče je, že funkce musí běžet nezávisle na operačním systému daného klienta. Místo psaní různých verzí pro Microsoft Windows , Mac OS X , GNU/Linux a další operační systémy se aplikace vytvoří jednou pro libovolnou platformu a nasadí se na ni. Rozdílná implementace, CSS , DOM a další specifikace v prohlížečích však mohou způsobit problémy při vývoji webových aplikací a následné podpoře. Kromě toho může schopnost uživatele konfigurovat mnoho nastavení prohlížeče (například velikost písma , barvy, zakázání podpory skriptů) bránit správnému fungování aplikace.
Dalším (méně univerzálním) přístupem je použití apletů Adobe Flash , Silverlight nebo Java k implementaci celého uživatelského rozhraní nebo jeho části. Protože většina prohlížečů tyto technologie podporuje (obvykle prostřednictvím zásuvných modulů ), lze aplikace Flash nebo Java snadno spustit. Protože dávají programátorovi větší kontrolu nad rozhraním, jsou schopni obejít mnoho nekompatibilit v konfiguracích prohlížeče, i když nekompatibilita mezi implementacemi Java nebo Flash na straně klienta může vést k různým komplikacím.
Pro rok 2015 není technologie Adobe Flash podporována Chrome, Safari a dalšími oblíbenými prohlížeči. [jeden]
Vzhledem k architektonické podobnosti s tradičními klient-server aplikacemi, určitým způsobem „tlustými“ klienty , existují spory o správnost klasifikace takových systémů jako webových aplikací; alternativní termín je Rich Internet Applications .
Používají se přístupy k architektonickému návrhu webových aplikací [2] . Webová aplikace se skládá z klientské a serverové části, čímž je implementována technologie „klient-server“ .
Klientská část implementuje uživatelské rozhraní [3] , generuje požadavky na server a zpracovává z něj odpovědi.
Serverová část obdrží požadavek od klienta, provede výpočty, poté vygeneruje webovou stránku a odešle ji klientovi po síti pomocí protokolu HTTP .
Samotná webová aplikace může fungovat jako klient pro další služby, jako je databáze nebo jiná webová aplikace hostovaná na jiném serveru. Pozoruhodným příkladem webové aplikace je systém pro správu obsahu článků na Wikipedii : mnoho jejích účastníků se může podílet na tvorbě online encyklopedie pomocí prohlížečů svých operačních systémů (ať už jde o Microsoft Windows , GNU/Linux nebo jakýkoli jiný operační systém) . ) a bez stahování dalších spustitelných modulů pro práci s databází článků.
V současné době získává na popularitě nový přístup k vývoji webových aplikací zvaný Ajax . Při použití Ajaxu se stránky webových aplikací nenačítají celé, ale pouze stahují potřebná data ze serveru, díky čemuž jsou interaktivnější a produktivnější.
V poslední době si také získává velkou oblibu technologie WebSocket , která nevyžaduje neustálé požadavky klienta na server, ale vytváří obousměrné spojení, ve kterém může server odesílat data klientovi bez požadavku od serveru. Je tak možné dynamicky spravovat obsah v reálném čase.
K vytváření webových aplikací na straně serveru se používá celá řada technologií a libovolné programovací jazyky :
název | Licence | webový server |
---|---|---|
A.S.P. | proprietární | specializované |
ASP.NET | proprietární | specializované |
C / C++ | volný, uvolnit | téměř jakýkoli |
Java [4] | volný, uvolnit | mnoho, včetně bezplatných |
Perl | volný, uvolnit | téměř jakýkoli |
PHP | volný, uvolnit | téměř jakýkoli |
Krajta | volný, uvolnit | téměř jakýkoli |
rubín | volný, uvolnit | téměř jakýkoli |
Nodejs | Licence MIT | vlastní |
ASP.NET vNext | Apache 2 | téměř jakýkoli [Ed. jeden] |
Na straně klienta se používá: