En webbapplikation är en klient-serverapplikation där klienten interagerar med en webbserver med hjälp av en webbläsare . Webapplikationens logik är fördelad mellan servern och klienten, data lagras huvudsakligen på servern, information utbyts över nätverket . En fördel med detta tillvägagångssätt är att klienter är oberoende av användarens specifika operativsystem , så webbapplikationer är plattformsoberoende tjänster.
Webbapplikationer blev mycket använda i slutet av 1990-talet och början av 2000- talet .
En betydande fördel med att bygga webbapplikationer för att stödja standard webbläsarfunktionalitet är att funktionaliteten måste köras oberoende av en given klients operativsystem. Istället för att skriva olika versioner för Microsoft Windows , Mac OS X , GNU/Linux och andra operativsystem, skapas en applikation en gång för en godtycklig plattform och distribueras på den. Men olika implementeringar, CSS , DOM och andra specifikationer i webbläsare kan orsaka problem i webbapplikationsutveckling och efterföljande support. Dessutom kan användarens förmåga att konfigurera många webbläsarinställningar (till exempel teckenstorlek , färger, inaktivera skriptstöd) hindra programmet från att fungera korrekt.
Ett annat (mindre mångsidigt) tillvägagångssätt är att använda Adobe Flash , Silverlight eller Java-applets för att implementera hela eller delar av användargränssnittet. Eftersom de flesta webbläsare stöder dessa tekniker (vanligtvis via plugins ) kan Flash- eller Java-applikationer köras med lätthet. Eftersom de ger programmeraren mer kontroll över gränssnittet kan de komma runt många inkompatibiliteter i webbläsarkonfigurationer, även om inkompatibiliteter mellan klientsidans Java- eller Flash-implementeringar kan leda till olika komplikationer.
För 2015 stöds inte Adobe Flash-tekniken av Chrome, Safari och andra populära webbläsare. [ett]
På grund av den arkitektoniska likheten med traditionella klient-serverapplikationer, på något sätt "tjocka" klienter , finns det tvister angående korrektheten av att klassificera sådana system som webbapplikationer; den alternativa termen är Rich Internet Applications .
Tillvägagångssätt för arkitektonisk design av webbapplikationer [2] används . En webbapplikation består av en klient och serverdelar, och implementerar därigenom "klient-server"-tekniken .
Klientdelen implementerar användargränssnittet [3] , genererar förfrågningar till servern och bearbetar svar från den.
Serverdelen tar emot en begäran från klienten, utför beräkningar, genererar sedan en webbsida och skickar den till klienten över nätverket med hjälp av HTTP - protokollet .
Webbapplikationen i sig kan fungera som klient för andra tjänster, till exempel en databas eller annan webbapplikation som finns på en annan server. Ett slående exempel på en webbapplikation är Wikipedia - artikelns innehållshanteringssystem : många av dess deltagare kan delta i skapandet av ett onlineuppslagsverk genom att använda webbläsarna i deras operativsystem (vare sig det är Microsoft Windows , GNU / Linux eller vilket annat operativsystem som helst ) och utan att ladda ner ytterligare körbara moduler för att arbeta med databasen med artiklar.
Ett nytt tillvägagångssätt för webbapplikationsutveckling som kallas Ajax vinner för närvarande popularitet . När du använder Ajax laddas inte webbapplikationssidorna om helt, utan laddar bara ner nödvändig data från servern, vilket gör dem mer interaktiva och produktiva.
Också nyligen vinner WebSocket- tekniken stor popularitet , som inte kräver konstanta förfrågningar från klienten till servern, utan skapar en dubbelriktad anslutning, där servern kan skicka data till klienten utan en begäran från den senare. Därmed blir det möjligt att dynamiskt hantera innehåll i realtid.
För att skapa webbapplikationer på serversidan används en mängd olika teknologier och alla programmeringsspråk :
namn | Licens | webbserver |
---|---|---|
ASP. | Proprietär | specialiserade |
ASP.NET | Proprietär | specialiserade |
C / C++ | fri | nästan vilken som helst |
Java [4] | fri | många, inklusive gratis |
Perl | fri | nästan vilken som helst |
PHP | fri | nästan vilken som helst |
Pytonorm | fri | nästan vilken som helst |
rubin | fri | nästan vilken som helst |
Nodejs | MIT-licens | egen |
ASP.NET vNext | Apache 2 | nästan alla [Red. ett] |
På klientsidan används: