Client
# Client

Un client (in lingua italiana detto anche cliente), in informatica, nell'ambito delle reti informatiche e dell'architettura logica di rete detta client-server, indica genericamente un qualunque componente software, presente tipicamente su una macchina host, che accede ai servizi o alle risorse di un'altra componente detta server, attraverso l'uso di determinati protocolli di comunicazione.

## Descrizione

La terminologia e il funzionamento di questo schema originano da una analogia con il mondo delle persone, dove un barista o negoziante (server) apre un servizio e si mette in attesa delle richieste dei clienti. I clienti sono solitamente in numero superiore al fornitore di servizi, le loro richieste arrivano con cadenza prevedibile, ma non predeterminata, e i tempi di servizio sono solitamente brevi rispetto al tempo di 'apertura' del fornitore.

Un computer collegato ad un server tramite una rete informatica (locale o geografica) ed al quale richiede uno o più servizi, utilizzando uno o più protocolli di rete è un esempio di client hardware. Si parla in tal caso di architettura client-server.

Oggi sempre di più i software, come il web, la posta elettronica, le basi di dati, sono divisi in una parte client (residente ed in esecuzione sul pc client) ed una parte server (residente ed in esecuzione sul server). Un programma di posta elettronica è un esempio di client software. Riprendendo l'analogia con il mondo delle persone, è come se andassimo di tanto in tanto all'ufficio postale a controllare la nostra casella della posta. L'ufficio postale mi fornisce la chiave della casella, ed io, in qualità di cliente, utilizzando la chiave accedo alla casella di posta collegata alla mia persona.

Ad esempio, nel web il software client è il browser che comunica con il server web attraverso il protocollo HTTP; per l'e-mail il client è detto in gergo mail user agent o MUA (ad esempio, Outlook, Mozilla Thunderbird, Eudora,...) che comunica con il server attraverso il protocollo SMTP e POP o IMAP; il client per la consultazione o la modifica del database (spesso costituito da librerie software utilizzate da una applicazione) comunica con il DBMS, che gestisce il database e risponde alle interrogazioni del client.

Gli esempi di diffusione e utilizzo di applicazioni client ad hoc (spesso di limitata dimensione e con licenza freeware), da installare in locale, che si interfacciano ad un server remoto sono numerosi; questa architettura è però progressivamente sostituita da quella basata su browser (non si deve installare e utilizzare un componente client specifico ma comunque il browser funge da client o, meglio, il servizio eseguito dal browser) con il quale il servizio è erogato sotto forma di applicazione web (ovviamente occorre sempre il componente server su cui si appoggia la parte preponderante del sistema). In alcuni casi esiste la possibilità di usare ambo le modalità.

Alcune app si concretizzano in un client che svolge un servizio che opera real-time in modalità "nascosta" (ad esempio gli strumenti di backup e sincronizzazione di informazioni archiviate sui dispositivi).

