Che cos’è e quali linguaggi si utilizzano per la Programmazione lato server

Che cos’è e quali linguaggi si utilizzano per la Programmazione lato server

Dato un ambiente client/server in un’architettura di protocolli TCP/IP (Transmission Control Protocol/Internet Protocol) e HTTP (Hypertext Transfer Protocol), per programmazione lato server si intende lo sviluppo di applicazioni che andranno in esecuzione prevalentemente sul server, accettando richieste del client. Una volta che il server ha elaborato i risultati, fornisce al client le pagine HTML. HTML (HyperText Markup Language) è considerato comunemente un linguaggio di programmazione non WYSIWYG (What You See Is What You Get: quello che vedi è quello che ottieni). Significa che per quanto un programmatore provi il codice HTML nel suo browser, non può sapere con precisione cosa accadrà quando sarà visualizzato in un altro browser. L’unica possibilità che lo sviluppatore ha a disposizione è di testare il proprio codice nella maggior quantità possibile di situazioni.

La programmazione lato server si differenzia dalla programmazione lato client in quanto il linguaggio lato client viene interpretato dal browser dell’utente che si collega, mentre quello lato server viene interpretato dal server e poi restituito in formato HTML al browser. Questa diversità comporta molti vantaggi per la programmazione lato server. Due di questi sono la compatibilità universale dei browser e la dinamicità delle pagine.

La programmazione lato utente è un metodo attraverso il quale l’utente richiede al server, attraverso un programma definito browser una determinata pagina web; questa pagina viene fisicamente trasferita dal server al computer dell’utente e grazie al browser viene poi interpretata ed i risultati visualizzati sullo schermo. In definitiva tutti i processi d’elaborazione, la logica, ed il codice vengono eseguiti sul computer in locale, che effettua la richiesta al server.

I principali linguaggi e tecnologie che possono essere utilizzati dal lato client sono sicuramente:

  1. JavaScript: linguaggio di programmazione interpretato e leggero, creato dalla Netscape. è il linguaggio di scripting client side più diffuso ed utilizzato in Internet. Lo svantaggio principale è che uno script può comportarsi in modo differente a seconda del browser in cui viene eseguito. Le funzioni principali di JavaScript sono il controllo dell’aspetto, del contenuto del documento e del browser. Inoltre permette l’interazione con l’utente con i moduli e permette di leggere e scrivere sui cookies (stringhe di testo memorizzate sul computer dell’utente che permettono di mantenere informazioni ottenute nelle connessioni precedenti).
  2. Java: linguaggio creato da Sun e concepito specificatamente per un utilizzo in ambienti di rete. L’architettura prevede infatti un interprete Java dal lato client (JVM Java Virtual Machine) presente in ogni browser che è in grado di rendere l’architettura indipendente da ogni piattaforma.

La programmazione lato server invece prevede il solito meccanismo di chiamata ma i processi, la logica, ed il codice vengono eseguiti nel server. All’utente arriva un file (di solito pagina HTML) contenente la risposta, ovvero le elaborazioni fatte dal server in base alle richieste dell’utente.

Un programma scritto con questo tipo di linguaggi viene sempre elaborato sul server. Inoltre il programma non viene mai reso disponibile all’utente, il quale può visualizzare solo il risultato del programma. Questo concetto è molto importante in quanto sta alla base della sicurezza e dell’affidabilità offerti dalla programmazione lato server.
Per far eseguire i programmi lato server, ogni web server dovrà essere opportunamente configurato. Quindi ogni web server deve far riferimento alla root virtuale: particolare directory sul disco fisico del web server. L’utente, quando si collegherà al server, non si collegherà alla directory root del server ma ad una sottodirectory fisica del disco che avrà la stessa funzione della root virtuale. All’interno della root virtuale, saranno contenute tutte le pagine HTML accessibili dall’esterno.

Il web server, affinché possa integrarsi con il linguaggio lato server, deve essere configurato adeguatamente per:

  • poter riconoscere l’estensione dei file con i programma da eseguire;
  • sapere la posizione dell’interprete da mandare in esecuzione per interpretare i linguaggi lato server;
  • indicare la cartella del server contenente il file lato server da eseguire.

Ogni linguaggio lato server dovrà inoltre interagire con il server SQL (Structured Query Language) e in particolare avere la possibilità di interagire tramite primitive con particolari DBMS installati sul server.

Che cos'è e quali linguaggi si utilizzano per la Programmazione lato server

Le principali e più utilizzate tecnologie lato server sono: Common Gateway Interface (CGI), Java Server Pages (JSP), Pre Hypertext Processor (PHP), Application Program Interface (API) proprietarie. Di seguito li descriviamo.

CGI

Con l’acronimo CGI (Common Gateway Interface, in italiano Interfaccia Comune di Uscita dal server) si indica una tecnologia lato server che riguarda l’interazione tra web server e differenti fonti di dati come applicativi e database presenti nel web server. è la prima forma di elaborazione lato server implementata nel 1993 quando il World Wide Web era agli esordi, inizialmente per l’utilizzo con le mailing list. Un programma CGI può essere scritto praticamente in qualsiasi linguaggio di programmazione (ad esempio C, C++ e Perl).
Il principio su cui si basano gli script CGI è il classico meccanismo input-output per la formulazione delle richieste, l’interpretazione di queste ultime e la soddisfazione delle stesse tramite una risposta adeguata, cioè divisa in tre parti:
1. input: utilizzando il proprio browser, l’utente formula una richiesta (link, compilazione form)
2. elaborazione: il web server raccoglie la richiesta effettuata dall’utente e ricerca l’output in grado di soddisfarla
3. output: il web server invia al browser del client la risorsa che soddisfa la richiesta

I comportamenti generati dagli script CGI sono automatizzati, cioè non richiedono l’intervento umano per portare a termine il compito per cui sono stati creati. Possono generare anche comportamenti non richiesti direttamente dall’utente, ma derivanti da azioni predefinite in sede di sviluppo.

JSP

Con l’acronimo JSP (Java Server Pages) si indica una tecnologia lato server basata su Java, il linguaggio creato da Sun. I vantaggi sono ereditati da Java, che garantisce la metodologia object oriented (predisposizione al riutilizzo del codice) e la quasi totale portabilità multipiattaforma. Lo svantaggio di JSP è essenzialmente nella lentezza di sviluppo, legata alla complessità della programmazione, in quanto si basa su un insieme di speciali tag e una sintassi specifica. Differisce dalle altre tecnologie non per i contenuti dinamici che si possono produrre ma per l’architettura interna del software che costituisce l’applicazione web e, di conseguenza, sui tempi di sviluppo, la portabilità, la modificabilità, le prestazioni, e altri aspetti di qualità del software. Nel contesto della piattaforma Java, la tecnologia JSP è correlata con quella dei servlet (applicazione Java in esecuzione su una JVM residente sul server). Al momento della richiesta di una pagina JSP, viene eseguito un servlet, che viene creato automaticamente. Nel web server esiste un motore JSP che esegue le operazione di page translation (creazione del sorgente Java del server corrispondente alla pagina JSP) e di page compilation (creazione del file .class del servlet). Il servlet, una volta creato e avviato, rimane in memoria per servire le richieste successive.

PHP

Con l’acronimo PHP (Pre Hypertext Processor) si indica una tecnologia lato server che utilizza un linguaggio open source completo di scripting, sofisticato e flessibile, che può girare su qualsiasi web server, su qualsiasi sistema operativo e soprattutto di interagire con i principali tipi di database. L’elaborazione di codice PHP sul server produce codice HTML da inviare al browser dell’utente che ne fa richiesta. PHP nasce nel 1994 ad opera di Rasmus Lerdorf come una serie di macro, la cui funzione era quella di facilitare ai programmatori l’amministrazione delle homepage personali( inizialmente PHP appunto Personal Home Page). Oggi PHP permette di raccogliere dati, generare contenuti dinamici, interagire con i cookie e con altri servizi utilizzando i principali protocolli (IMAP Internet Message Access Protocol, SNMP Simple Network Management Protocol, NNTP Network News Transport Protocol, POP3 Post Office Protocol 3). Tra le applicazioni principali si ricorda l’autenticazione degli utenti, la gestione di template, la gestione di file XML (eXtensible Markup Language), la creazione dinamica di immagini e di documenti PDF utilizzando apposite librerie. Inoltre PHP è caratterizzato da una velocità di sviluppo veramente notevole. Azioni come interrogazioni di database o utilizzo di socket TCP possono essere gestite in modo molto semplice, almeno in confronto agli altri linguaggi. Tutti questi motivi, rende PHP uno dei linguaggi più utilizzati in tutto il mondo per la programmazione server side. I problemi principali si trovano al mancato adempimento delle best practice nella programmazione e da vulnerabilità presenti in codice scritto in versioni vecchie di PHP.

API proprietarie

Con l’acronimo API (Application program Interface) si indica un insieme di procedure, protocolli e strumenti per realizzare un’applicazione software. Si dice proprietarie perché Microsoft e Netscape hanno sviluppato entrambe le proprie API per permettere agli sviluppatori di scrivere applicazioni dal lato server come delle librerie, probabilmente per rispondere all’inefficienza di CGI. Queste librerie vengono caricate nello stesso processo del web server e sono in grado di rispondere a richieste multiple senza generare nuovi processi. Lo svantaggio principale delle API proprietarie è che può essere utilizzato solamente nella specifica piattaforma in cui è stato creato e il trasferimento ad un’altra risulterebbe particolarmente difficile.
Inoltre, visto che sono eseguite nello stesso processo del server, l’intero server potrebbe cadere se si verifica una violazione di accesso.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: www.vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *