WORDS
Navigera i webbdjungeln: Klient och server
Konceptet klient-server är ganska enkelt: en klient har rollen att begära tjänster av en server. Ofta finns det många klienter som begär tjänster av en centraliserad server. På webben är klienten det som sker i webbläsaren, medan servern är den som skickar kod och data till webbläsaren.
Det som krånglar till det är att detta förhållande förekommer i många situationer, och bara inom webbprogrammering finns flera olika definitioner. För "server" har vi fyra definitioner och för "klient" har vi tre.
Server
- Applikation. En applikation som lyssnar på en port och som tar emot förfrågningar (eng. requests) genom att eventuellt utföra någon affärslogik och därefter skicka ett svar (eng. response).
- Exempel: Den del av din applikation som är skriven med C#/IIS, Python/Flask, PHP eller liknande.
- Bibliotek. Ett bibliotek som låter en server (1.) lyssna på en port och hantera förfrågningar.
- Exempel: Express (Javascript/Node), Flask (Python), Owin self-hosted (C#).
- Förmedlare. Applikation som lyssnar på en port, och vidarebefordrar förfrågningar och svar genom att skicka den vidare till andra applikationer.
- Exempel: Nginx, IIS, Apache.
- Fysisk dator. Den fysiska dator som behandlar förfrågningar från andra datorer via nätverket.
- Exempel: Dator i en serverhall, en Raspberry PI som svarar på HTTP-anrop.
Klient
- Applikation. En applikation som anropar ett webb-api över nätverket.
- Exempel: Den del av din applikation som körs i webbläsaren.
Bibliotek. Det finns ingen motsvarighet på klientsidan.- Förmedlare. Webbläsaren, som vidarebefordrar förfrågningar och svar, till förmån för din applikation.
- Exempel: Firefox, Safari, Chrome, Edge, Internet Explorer.
- Fysisk dator. Den fysiska dator som webbläsaren finns installerad på.
- Exempel: Stationär eller bärbar dator, telefon, surfplatta. I sakernas internet kan allt från tv-apparater till kylskåp och hushållsapparater vara klienter.
Front-end och back-end
Front-end betecknar det som är nära användaren, och back-end det som är längre ifrån, utan att definiera hur kommunikationen mellan dom två sker.
Ofta kan front-end användas som synonym till klient, och på motsvarande vis back-end som synonym till server.