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.
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:
Sito realizzato in base al template offerto da
http://www.graphixmania.it