I ett klient-servernätverk delas applikationsarkitekturfunktioner mellan klienten och servern, var och en ansvarig för specifika uppgifter. Den exakta uppdelningen beror på applikationens design och krav, men följer i allmänhet dessa linjer:
Ansvarsansvar:
* Användargränssnitt (UI): Klienten hanterar presentationen av data till användaren och accepterar användarinmatning. Detta inkluderar visuella element, inmatningsfält, knappar och andra interaktiva komponenter. Tänk på detta som "front-end."
* Presentation och formatering: Klienten tar rådata som mottagits från servern och formaterar den för visning till användaren. Detta kan involvera sortering, filtrering och presentera data på ett användarvänligt sätt (diagram, grafer, tabeller etc.).
* Lokal datahantering: Klienten kan hantera lite lokal datacache eller tillfällig lagring för att förbättra prestandan. Detta kan inkludera saker som formulärdata före inlämning, eller nyligen åtkomst till objekt.
* Applikationslogik (begränsad): En del grundläggande applikationslogik kan finnas på klienten, till exempel inputvalidering eller enkla beräkningar. Emellertid hanteras komplex logik i allmänhet på servern för att upprätthålla säkerhet och konsistens.
* Kommunikation med servern: Klienten initierar kommunikation med servern för att begära data eller utföra åtgärder. Den använder protokoll som HTTP, HTTPS eller andra beroende på applikationen.
* Säkerhet (begränsad): Kunder hanterar ofta grundläggande inputvalidering för att förhindra vissa typer av attacker, men robusta säkerhetsåtgärder är vanligtvis serversidan.
Sere-ansvarsansvar:
* Datalagring och hantering: Servern ansvarar för att lagra och hantera applikationens data. Detta kan involvera en databas (SQL, NoSQL), filsystem eller andra lagringsmekanismer.
* Applikationslogik (primär): Majoriteten av applikationens affärslogik och behandling hanteras på servern. Detta säkerställer konsistens och förhindrar manipulation av applikationens kärnfunktionalitet.
* Access and Hämtning: Servern hanterar förfrågningar från klienter för data och returnerar lämplig information.
* Säkerhet: Servern spelar en avgörande roll i säkerheten, inklusive autentisering, auktorisation och dataskydd.
* Skalbarhet och tillförlitlighet: Serverarkitekturen är utformad för att hantera flera klientförfrågningar samtidigt och upprätthålla tillgången på service.
* backend -tjänster: Server hanterar ofta backend -processer som integration med andra system, schemalagda uppgifter och rapportering.
Exempel som illustrerar splittringen:
* webbläsare (klient) - webbserver (server): Webbläsaren visar webbplatsen, skickar förfrågningar till servern (t.ex. för en webbsida, inloggning eller formulärinlämning) och tar emot data från servern. Servern lagrar webbplatsens innehåll, behandlar förfrågningarna och interagerar med databasen.
* e -postklient (klient) - E -postserver (server): E -postklienten låter dig komponera och läsa e -postmeddelanden, medan e -postservern lagrar e -postmeddelanden, dirigerar dem och hanterar användarkonton.
* online -spel (klient) - Game Server (server): Spelklienten gör spelvärlden på spelarens skärm, skickar spelaråtgärder (t.ex. rörelse, attacker) till servern. Servern hanterar speltillståndet, upprätthåller reglerna och hanterar kommunikationen mellan spelare.
Det är viktigt att notera att detta är en allmän översikt. Den specifika fördelningen av uppgifter kan variera mycket beroende på faktorer som applikationskomplexitet, prestationskrav, säkerhetsöverväganden och det valda arkitektoniska mönstret (t.ex. mikroservices, tre-nivåarkitektur). Moderna applikationer använder ofta en kombination av behandling av klientsidan och serversidan för att optimera prestanda och användarupplevelse.