Aplikacja webowa a strona internetowa

Aplikacja webowa a strona internetowa

Tak jak rozwijały się technologie komputerowe, tak rozwijały się również strony internetowe, które na początku pełniły funkcję jedynie informacyjną. Na pewno pamiętasz te wczesno-internetowe strony, które wyglądały jak dokumenty w wordzie, w których ktoś zdecydowanie przesadził z clipartami . Były to zwyczajnie statyczne dokumenty pobierane z serwera i wyświetlane na przeglądarce użytkownika. Nie trzeba było długo czekać aż od stron internetowych zaczęto wymagać znacznie więcej. Powstały więc rozwiązania umożliwiające rozszerzenie stron o elementy dynamiczne, animacje, wyświetlanie komunikatów czy przesyłanie formularzy. Kiedy jednak przestajemy korzystać ze strony internetowej na rzecz aplikacji webowej? 

Strona internetowa

Strona internetowa sprowadza się do dokumentu, który jest pobierany i wyświetlany w naszej przeglądarce. Możemy do tego dołożyć JavaScript, wykonywać za jego pomocą obliczenia czy zapytania do zewnętrznego API etc. Jednak dalej to wszystko dzieje się w naszej przeglądarce. Gdy przychodzi moment, że na naszej stronie będziemy chcieli dodać autoryzację, skomplikowane obliczenia czy generowanie treści bazując na działaniach użytkownika – to znaczy że potrzebujemy aplikacji internetowej. Zdolny programista JavaScript potrafi tak manipulować elementami DOM’a, że czasami trudno odróżnić czy to jeszcze strona, czy już aplikacja internetowa.

 

Przeważnie zastosowaniem strony internetowej jest funkcja informacyjna – mamy jakieś wiadomości i chcemy je przekazać. Wybierając stronę internetową nie zakładamy raczej codziennej aktualizacji ani ‚ciężkiego’ kodu po stronie użytkownika. Mimo XXI wieku nie każdy komputer może poradzić sobie tak samo dobrze z renderowaniem strony, która na naszej przeglądarce działała płynnie.

website memes - website is never done

Aplikacja internetowa

Budowanie aplikacji webowej w przeciwieństwie do strony statycznej nie jest trywialnym zadaniem. O ile stronę internetową (prostą) możemy stworzyć w dzień lub dwa – tak aplikacja wymaga poświęcenia znacznie więcej czasu i zaplanowanego działania. Budując stronę internetową głównie korzystamy z HTML, JS i CSS. JavaScript ma duży potencjał i opanowanie go do perfekcji jest zadaniem trudnym i czasochłonnym. Jednak nauka JS’a do stopnia umożliwiającego budowanie prostych stron internetowych jest osiągalna dla każdego. Nawet jeśli wcześniej nie miało się styczności z programowaniem. 

Flow diagram dla architektury MVC - Model View Controller

Aplikacja webowa rządzi się innymi prawami – nie piszemy tutaj kodu wykonywanego tylko na kliencie (w przeglądarce), a na serwerze. Proces wyświetlania strony w aplikacji webowej może się różnić w innych aplikacjach. Czasami wygląda tak, że użytkownik łączy się z serwerem i zamiast dostać folder plików statycznych (jak w stronie internetowej) zostaje obsłużony kompleksowo. To znaczy, że serwer czyta o jaką stronę użytkownik poprosił (na jaką ścieżkę wszedł) – czy było to na pawscode.pl/abc czy pawscode.pl/xyz . W zależności od tej ścieżki inaczej go obsługuje.

Może być i tak, że serwer nie robi nic, tylko wysyła statyczną stronę internetową i idzie sobie na Thread.sleep( ) – to jednak byłby overkill. Jedną z możliwości jest, że serwer generuje stronę a w czasie jej działania podmienia lub aktualizuje jej komponenty. To znaczy, że bez potrzeby odświeżania i przełączania się między stronami pojawiają się nowe okna, informacje czy inne odpowiedzi z serwera. Serwer również może wykonywać operacje na bazie danych, łączyć ze sobą użytkowników w grze lub na czacie, wykonywać obliczenia itd itd. 

Może to wyglądać również tak, że przy wejściu na stronę łączymy się przez websocket’y z serwerem i tym strumieniem dostarczane są nam informacje. Serwer może również wysyłać pliki JS, które generują treść strony (Client-Side rendering). Może również dokonywać wstępnego renderowania i dostarczać już wyrenderowaną stronę (Server-Side rendering). Jedno i drugie rozwiązanie ma wiele zalet i wad – w zależności od kontekstu i potrzeb. Jako, że niedawno miałem (i wciąż mam) styczność z jednym i drugim podejściem – napiszę więcej na ten temat innym razem. 

TL;DR

Podsumowując – aplikację webową można porównać do aplikacji komputerowej czyli zwyczajnego programu. Różnica polega na tym, że monitor, na którym wyświetlamy nasz program to okno przeglądarki a komputer, na którym działa – serwer. To, czym różni się aplikacji internetowa od strony internetowej to właśnie to, że aplikacja internetowa większość obliczeń wykonuje na serwerze. Natomiast strona internetowa to taki segregator z wieloma kartkami, pomiędzy którymi możemy się swobodnie poruszać. 

Zamierzasz napisać aplikację webowa? Polecam Ci zapoznanie się z Play Framework oraz Scala.js. Dzięki takiemu połączeniu napiszesz część klienta i serwera w tym samym języku! Zachęcam również do zapoznania się z API RPC, przy budowaniu własnego serwisu. 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Back to top