En webapplikation er en klient-serverapplikation , hvor klienten interagerer med en webserver ved hjælp af en browser . Webapplikationens logik er fordelt mellem serveren og klienten, data lagres hovedsageligt på serveren, information udveksles over netværket . En fordel ved denne tilgang er, at klienter er uafhængige af brugerens specifikke operativsystem , så webapplikationer er tjenester på tværs af platforme.
Webapplikationer blev meget brugt i slutningen af 1990'erne og begyndelsen af 2000'erne .
En væsentlig fordel ved at bygge webapplikationer til at understøtte standard browserfunktionalitet er, at funktionaliteten skal køre uafhængigt af en given klients operativsystem. I stedet for at skrive forskellige versioner til Microsoft Windows , Mac OS X , GNU/Linux og andre operativsystemer, oprettes en applikation én gang til en vilkårlig platform og installeres på den. Forskellige implementeringer, CSS , DOM og andre specifikationer i browsere kan dog forårsage problemer i webapplikationsudvikling og efterfølgende support. Derudover kan brugerens mulighed for at konfigurere mange browserindstillinger (for eksempel skriftstørrelse , farver, deaktivere script-understøttelse) forhindre applikationen i at fungere korrekt.
En anden (mindre alsidig) tilgang er at bruge Adobe Flash , Silverlight eller Java-applets til at implementere hele eller dele af brugergrænsefladen. Fordi de fleste browsere understøtter disse teknologier (normalt via plugins ), kan Flash- eller Java-applikationer køre med lethed. Fordi de giver programmøren mere kontrol over grænsefladen, er de i stand til at omgå mange inkompatibiliteter i browserkonfigurationer, selvom inkompatibilitet mellem Java- eller Flash-implementeringer på klientsiden kan føre til forskellige komplikationer.
For 2015 understøttes Adobe Flash-teknologi ikke af Chrome, Safari og andre populære browsere. [en]
På grund af den arkitektoniske lighed med traditionelle klient-server-applikationer, på en eller anden måde "tykke" klienter , er der uenigheder om rigtigheden af at klassificere sådanne systemer som webapplikationer; det alternative udtryk er Rich Internet Applications .
Der anvendes tilgange til arkitektonisk design af webapplikationer [2] . En webapplikation består af en klient- og serverdele og implementerer derved "klient-server"-teknologien .
Klientdelen implementerer brugergrænsefladen [3] , genererer anmodninger til serveren og behandler svar fra den.
Serverdelen modtager en anmodning fra klienten, udfører beregninger, genererer derefter en webside og sender den til klienten over netværket ved hjælp af HTTP -protokollen .
Selve webapplikationen kan fungere som klient for andre tjenester, såsom en database eller anden webapplikation, der er hostet på en anden server. Et slående eksempel på en webapplikation er Wikipedia - artiklens indholdsstyringssystem : mange af dets deltagere kan deltage i skabelsen af et online-leksikon ved hjælp af browsere på deres operativsystemer (det være sig Microsoft Windows , GNU/Linux eller et hvilket som helst andet operativsystem ) og uden at downloade yderligere eksekverbare moduler til at arbejde med databasen med artikler.
En ny tilgang til udvikling af webapplikationer kaldet Ajax er i øjeblikket ved at vinde popularitet . Når du bruger Ajax , genindlæses webapplikationssiderne ikke helt, men downloader kun de nødvendige data fra serveren, hvilket gør dem mere interaktive og produktive.
Også for nylig vinder WebSocket- teknologien stor popularitet , som ikke kræver konstante anmodninger fra klienten til serveren, men skaber en tovejsforbindelse, hvor serveren kan sende data til klienten uden en anmodning fra sidstnævnte. Dermed bliver det muligt dynamisk at administrere indhold i realtid.
For at oprette webapplikationer på serversiden bruges en række teknologier og ethvert programmeringssprog :
Navn | Licens | Webserver |
---|---|---|
A.S.P. | proprietære | specialiseret |
ASP.NET | proprietære | specialiseret |
C / C++ | ledig | næsten enhver |
Java [4] | ledig | mange, inklusive gratis |
Perl | ledig | næsten enhver |
PHP | ledig | næsten enhver |
Python | ledig | næsten enhver |
rubin | ledig | næsten enhver |
Nodejs | MIT-licens | egen |
ASP.NET vNext | Apache 2 | næsten enhver [Red. en] |
På klientsiden bruges: