PROGRAMMIAMO
PHP - Client e server
Architettura client-server

Nel download e nella visualizzazione di una pagina web in rete, possiamo distinguere fra un client (colui che richiede la pagina) e un server (colui che fornisce la pagina stessa). In pratica il client è il programma browser (es. Internet Explorer) che l'utente utilizza per navigare in rete sul proprio computer. Il server è invece un altro programma che viene eseguito sul sistema remoto (cioè su un altro computer collegato in rete) che ospita la pagina richiesta.

Anche se spesso viene fatta confusione su questi termini, è bene precisare da subito che client e server sono due processi distinti che vengono eseguiti (in genere) su due computer distinti. La comunicazione e lo scambio di dati fra queste due applicazioni produce nel nostro caso la visualizzazione della pagina sul computer dell'utente.

Si noti che nella definizione precedente si è parlato di processi piuttosto che di programmi. Un processo in pratica è un programma in esecuzione sul PC. Il programma è la sequenza di istruzioni (statica) che definisce le operazione da svolgere; il processo è un'istanza in esecuzione di un dato programma. A uno stesso programma possono corrispondere più processi in esecuzione contemporaneamente (es. diverse finestre del browser).

Questo tipo di interazione fra processi prende il nome di architettura client-server e non è limitata al solo caso di download di una pagina in rete. Anche lo scambio di email, la gestione di una stampante di rete o la decodifica in indirizzo IP dell'URL di una pagina avvengono tramite uno scambio fra un client e un server. Una caratteristica comune che hanno tutti questi esempi è che il server è unico mentre i client sono di solito più di uno (si pensi di nuovo al download di una data pagina web, che può essere effettuato contemporaneamente da molti browser).

Un altro tipo di architettura (alternativa alla precedente) è quella detta peer-to-peer, nella quale i processi in comunicazione hanno un ruolo paritario e possono svolgere, a seconda dei casi, il ruolo di client oppure di server. Per esempio in una rete di scambio file peer-to-peer (es. eMule, Torrent) ogni processo in rete effettua sia il download di file (o di porzioni di file) che l'upload e non esiste un server unico che gestisce tutto.

Limiti degli script lato client

Il linguaggio JavaScript (JS) permette l'esecuzione di programmi (script) direttamente sul browser dell'utente, cioè lato client. Il browser funge infatti da interprete per l'esecuzione delle istruzioni dello script.

La programmazione lato client (con JavaScript o con altri linguaggi simili) presenta diverse limitazioni. Per esempio:

  1. L'esecuzione di script lato client dipende interamente dal browser installato dall'utente. Esistono infatti enormi variabilità nelle possibilità e nelle modalità di esecuzione dei diversi tipi e versioni di browser. Inoltre l'utente può configurare il proprio browser disabilitando persino l'esecuzione di script. Questo implica che il programmatore di pagine web non può mai essere sicuro di come verrà visualizzata una pagina contenente uno script lato client.

  2. Vi sono numerose restrizioni a ciò che il JS può fare, restrizioni legate principalmente a problemi di sicurezza (per esempio JS non può accedere al file system del computer client, creando o leggendo file).

  3. Infine esistono numerose operazioni che non potrebbero comunque mai essere eseguite lato client. Per esempio il conteggio del numero di visitatori di un sito, la ricerca di informazioni in un data base, la gestione di forum, sondaggi, mailing list e molto altro. Tutte queste operazioni, come vedremo meglio nel seguito, possono essere eseguite solo sul computer remoto e non su quello dell'utente.

 

successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it