Javascript e HTTP

di: Andrea Chiarelli     18 Marzo 2005

Il protocollo HTTP (HyperText Transfer Protocol) insieme al linguaggio di markup HTML costituiscono la base del Web. I dettagli di come richiedere una pagina HTML e di come inviare dati al server sono interamente gestiti dal browser e lo sviluppatore di pagine Web può permettersi di ignorarli.

Questo è vero fino a quando non si hanno esigenze particolari che prevedono l'interazione diretta con il server e la manipolazione di dati da parte del client. Si pensi, ad esempio, all'analisi del contenuto di una pagina Web direttamente tramite il client o alla richiesta di dati caricati dinamicamente sul client o all'invocazione di uno script remoto.

In questi casi la possibilità di utilizzare direttamente il protocollo HTTP risulta molto utile.

Ma come possiamo gestire questo protocollo dall'interno di una pagina Web? Quale supporto viene offerto dai browser?

A queste domande cercheremo di rispondere in questo articolo.

Elementi di HTTP

Il protocollo HTTP si basa su una serie di comandi diretti al server per richiedere o inviare dati. Tra questi, i tre comandi più noti sono:

GET

Tramite questo comando viene richiesta una risorsa sul server. Una risorsa può essere rappresentata da una pagina HTML, un'immagine o un qualsiasi altro tipo di file, ma può essere costituito anche dal risultato dell'esecuzione di uno script o di una pagina ASP, PHP, ecc.

POST

Il comando POST consente di inviare dati al server contestualmente alla richiesta di una risorsa. Generalmente questo comando viene utilizzato per inviare dati raccolti tramite una form.

HEAD

Con questo comando vengono richieste al server informazioni su una risorsa, non la risorsa stessa. Ad esempio, può essere richiesta la data di modifica della risorsa, le dimensioni o il tipo senza caricare la risorsa stessa

Le specifiche del protocollo prevedono altri comandi, come PUT, DELETE, CONNECT, ecc., ma per lo scopo del nostro articolo non ci occuperemo di questi comandi.

HTTP, JavaScript e i browser

Individuati i comandi principali del protocollo HTTP non ci resta che scoprire come fare ad inviarli al server. A parte l'evidente utilizzo implicito dei metodi GET e POST tramite i link e le form HTML, lo strumento chiave per poter effettuare un minimo di elaborazione sui risultati inviati dal server è naturalmente JavaScript.

Ma come possiamo inviare comandi al server utilizzando JavaScript? Purtroppo, mentre il protocollo HTTP rappresenta uno standard di interazione tra un Web server e tutti i browser, la stessa cosa non vale per il supporto offerto dai browser per l'utilizzo del protocollo tramite JavaScript. I principali browser forniscono meccanismi diversi per consentire di interagire con il server dall'interno di una pagina Web.

Il browser di Microsoft consente di sfruttare il protocollo HTTP tramite la libreria MSXML. Per utilizzare la libreria in JavaScript è necessario creare un'istanza della classe XMLHTTP come nel seguente esempio di codice:

objHTTP = new ActiveXObject("MSXML2.XMLHTTP")

Purtroppo, l'identificatore della libreria da passare al costruttore ActiveXObject dipende dalla versione di MSXML installata sulla macchina. L'esempio precedente si riferisce alla versione 3 presente con la versione di Internet Explorer 6.0. Per instanziare la versione precedente, fornita con Internet Explorer 5.0, occorre utilizzare il seguente codice:

objHTTP = new ActiveXObject("Microsoft.XMLHTTP")

Mozilla mette a disposizione l'oggetto XMLHttpRequest equivalente in linea di massima all'oggetto di Microsoft. Tale oggetto è integrato in questo browser e per l'utilizzo con JavaScript è sufficiente una semplice istanziazione come nell'esempio seguente:

objHTTP = new XMLHttpRequest()

L'oggetto XMLHttpRequest è supportato anche da Safari e Opera, anche se con alcune limitazioni e malfunzionamenti.

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida jQuery UI

Creare siti ricchi e dinamici con jQuery UI, il progetto ufficiale...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti