Client-server computing er en computermodel, hvor klienter (ofte implementeret som slutbrugerenheder såsom computere, telefoner og tablets) anmoder om tjenester fra servere (typisk implementeret som backend-computere).
Hver klient interagerer med serveren for at indsende en anmodning og få den ønskede information eller service. Klienten sender sin anmodning til et specificeret portnummer på serveren, som identificerer den service eller applikation, som anmodningen skal sendes til. Serveren behandler derefter anmodningen og sender et svar tilbage.
Her er nøglekomponenterne i en klient-server-arkitektur:
1. Kunde :Dette er den enhed, der anmoder om tjenester fra serveren. Klienter kan være enheder som personlige computere, smartphones eller andre netværkstilsluttede enheder. Hver klient sender uafhængigt anmodninger til serveren.
2. Server :Dette er en tjenesteudbyder, der modtager og behandler anmodninger fra flere klienter. Servere er typisk mere kraftfulde computere eller specialiseret hardware dedikeret til at levere specifikke tjenester.
3. Kommunikationsprotokol :Klienten og serveren kommunikerer gennem en veldefineret kommunikationsprotokol, såsom HTTP eller TCP/IP, der specificerer, hvordan anmodninger sendes, hvordan svar modtages, og hvordan data overføres mellem dem.
4. Tjenester og applikationer :På serversiden kan forskellige tjenester eller applikationer hostes for at opfylde klientanmodninger. Disse kan omfatte webhosting, fildeling, databaseadgang, e-mail-tjenester eller enhver anden specifik tjeneste.
5. Netværksforbindelse :Klienten og serveren kan forbindes via et lokalt netværk (LAN), internettet eller andre typer netværk. Netværket giver infrastrukturen til datatransmission mellem dem.
I en klient-server-model centraliserer serveren ansvaret for at vedligeholde og opdatere data, administrere brugergodkendelse og sikkerhed og levere specialiserede funktioner eller tjenester. Det forbedrer også skalerbarheden, da det kan håndtere flere klientanmodninger samtidigt, mens det giver kunderne mulighed for effektivt at få adgang til delte ressourcer og tjenester.
Eksempler fra den virkelige verden på klient-server-systemer omfatter web-browsing (webservere, der hoster websteder og brugernes webbrowsere, der fungerer som klienter), onlinespil (spilservere, der hoster spilsessioner med spillerens enheder som klienter), e-mail-systemer (e-mail-servere, der lagrer og leverer meddelelser og e-mail-klienter, der får adgang til serveren for at sende eller modtage e-mails).