Nicola D'Agostino (.net) - Articoli, traduzioni, grafica, web

Il webserver nel browser

Come trasformare qualsiasi computer in un webserver minimale. Grazie ad un’estensione per Firefox.

di Nicola D’Agostino

Si chiama POW ed è un’aggiunta per il browser open source Mozilla Firefox che lo trasforma in un server di pagine web. L’idea è venuta a David Kellogg che nel febbraio di quest’anno ha rilasciato la versione 0.1.0 della sua geniale estensione.

Per quanto ancora agli inizi e quindi un po’ acerbo, il Plain Old Webserver (POW) di Kellogg funziona e in poche mosse e con estrema facilità rende qualsiasi PC e sistema operativo in grado di fare funzionare Firefox 1.0 o successivo un vero e proprio server web: il tutto senza bisogno di installare o pasticciare con prodotti potenti ma complessi come Apache o IIS. Per funzionare, POW sfrutta e supporta il JavaScript lato server (SJS) ma anche il GET e il POST, gli upload, l’uso di Cookie, di SQLite come database e persino di AJAX.
Le potenzialità sono infinite e alcuni pionieri hanno già iniziato ad usarlo costruendoci sopra servizi come chat, wiki e motori di ricerca.

Let’s get POWed

Per installare l’estensione andiamo con Firefox sulla pagina di POW sul server mozilla.org e selezioniamo con un click il link “Install Now” subito dopo la descrizione. Acconsentiamo all’installazione, usciamo e rilanciamo Firefox.
A questo punto il primo segnale dell’attivazione di POW ci viene dall’icona in basso a destra nella barra di stato del browser che è rossa e ci dice “POW enabled”. In caso contrario l’icona è grigia.

Facendo control-click sull’icona oppure in alto dal menù “Strumenti” (“Tools” se abbiamo Firefox in inglese) e scegliendo “Turn POW on/off” possiamo attivarlo o disattivarlo.

Attivazione e disattivazione di POW

Quando il servizio è attivo possiamo vedere la nostra home digitando l’url
http://localhost:6670/ o http://nostroippubblico:6670/ (ma attenzione se si è dietro NAT) o ancora scegliendo la voce “POW Home…” da uno dei due menù citati.

Home sweet home

La homepage standard di POW ci fornisce vari link utili.
Uno è alle FAQ o meglio ad una guida minimale all’uso, che troviamo in locale, il link all’help ufficiale e infine alla directory htdocs in cui sono contenuti fisicamente i file della home che si trovano dentro la cartella del nostro profilo di Firefox.

Su un PC con Windows sono in
C:\Documents and Settings\nomeutente\Application Data\Mozilla\Firefox\Profiles\caratteripseudocasuali\pow\htdocs

in Mac OS X in
~/Library/Application%20Support/Firefox/
Profiles/caratteripseudocasuali/pow/htdocs/

Su Linux invece sono in
~/.mozilla/firefox/default.qualchenumero/pow/htdocs

Script ma non solo

Tra questi file c’è anche quello della home, “index.sjs”, scritto come tutte le parti di POW in SJS, nel Server-side Javascript, linguaggio che nel file mischia script e tag HTML.
Una buona guida al funzionamento di POW e ai segreti di SJS è sul wiki dell’autore che ci dimostra come usando l’SJS possiamo realizzare anche un server chat.

Nulla vieta però di usare il buon vecchio HTML. Al posto di “index.sjs” possiamo infatti mettere un qualsiasi file “index.html” e una serie di file statici HTML collegati da link e lo stesso possiamo fare in qualsiasi sottocartella: dopotutto POW è a tutti gli effetti un vero server web e possiamo ospitare contemporaneamente numerosi siti e liste di file.

Un sito web in HTML ospitato via POW

A dire il vero non siamo nemmeno costretti a rimanere nella directory “htdocs” ma possiamo sceglierne un’altra, cosa che ci porta alla configurazione delle opzioni di POW.

Tutte le opzioni

Dagli stessi menù da cui si fa partire o fermare il server possiamo anche configurare meglio il servizio scegliendo la voce “Options” che fa apparire un pannello di controllo con tre preferenze.

Barrando la casella “Password Protect Site” possiamo impostare uno username e password per limitare l’accesso web solo a chi vogliamo noi (ad esempio per condividere materiale riservato o sensibile).

È possibile poi cambiare la directory che risulterà la home di base (e quindi le sottocartelle) e la porta di POW. Normalmente è autoimpostata su 6670, ma si può cambiare anche se l’autore sconsiglia di impiegare porte sotto la 1025 a meno di sapere bene ciò che si sta facendo.

L’ultima opzione è relativa ai Mime Type e cioè al riconoscimento dei file dal browser dei nostri visitatori. Quelli più usati sono già impostati, come html, txt, css, jpg, gif e anche il formato sjs usato da POW ma possiamo aggiungerne altri.
Sarebbe bene farlo per qualche altro tipo di immagine come il png, per audio e filmati come mp3, wma, ogg, mpg, avi, wmv o i file flash o ancora gli archivi compressi zip, rar, gz, bz.
Offrire contenuto multimediale o materiale compattato può essere uno dei motivi principali per cui attiviamo il web server sul nostro PC.
Due liste succinte ma utili dei Mime Type più usati e diffusi sono disponibili agli url www.asahi-net.or.jp/en/guide/cgi/mimetype.html
safari.oreilly.com/0596001789/perllwp-APP-C

Problemi con le opzioni?

Possono esserci problemi nell’aprire e impostare le opzioni di POW. Sul forum su mozillazine David Kellogg spiega come sia un problema temporaneo e che affligga solo chi usa il browser in versione localizzata, ad esempio cinese o italiana.
Se non si vuole passare alla versione in inglese di Firefox una soluzione può essere di modificare il contenuto del file pow.jar contenuto nella cartella dei profili di Firefox. Scompattiamolo il .jar (è un file zip), entriamo nella directory “locale” dove troveremo le cartelle “en-US” e quelle delle altre lingue, ad esempio “it-IT” per l’italiano. menù. Copiamo il file “pow.dtd” da “en-US” rimpiazzando quella in “it-IT” e ricreiamo un nuovo pow.jar zippando la directory che sostituirà la vecchia.

Una versione di questo articolo è stata (presumibilmente) pubblicata su "Hacker Journal" nel marzo 2007