[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]
Il modo più comune per pubblicare informazioni attraverso la rete è quello di utilizzare un servente HTTP (Hypertext transfer protocol).
Le informazioni pubblicate in questo modo sono rivolte a tutti gli utenti che possono raggiungere il servizio, nel senso che normalmente non viene richiesta alcuna identificazione. Al massimo si impedisce o si concede l'accesso in base al meccanismo di filtro gestito dal supervisore dei servizi di rete o dal TCP wrapper.
Per offrire un servizio HTTP occorre un programma in grado di gestirlo. Di solito si tratta di un demone. Analogamente al servizio FTP anonimo, il servente HTTP consente l'accesso a una directory particolare e alle sue discendenti. Questa directory viene identificata spesso con il nome document root e si tratta in pratica di una sorta di directory personale degli utenti (anonimi) che accedono attraverso questo protocollo.
Un servente HTTP non offre solo un servizio di semplice consultazione di documenti: permette anche di interpellare dei programmi. Questi programmi sono collocati normalmente al di fuori della directory da cui si diramano i documenti (HTML o di altro tipo), per evitare che questi possano essere letti. In questo contesto, tali programmi sono definiti gateway e normalmente vengono chiamati programmi CGI, o cgi-bin.
L'avvio di programmi implica l'attribuzione di privilegi. Di solito si fa in modo che questi funzionino utilizzando i privilegi di un utente fittizio apposito (www, nobody o simile), per evitare che possano compiere più azioni del necessario.
Secondo le consuetudini, di solito si configura il servente HTTP in modo da non consentire la lettura del contenuto delle directory. In pratica, se si indica un indirizzo che rappresenta una directory, si ottiene un file predefinito, che di solito corrisponde a index.html
, contenuto nella directory richiesta; mentre se questo è assente, non si ottiene alcunché.
Per poter usufruire di un servizio HTTP occorre un programma cliente adatto. In generale, tale programma cliente è in grado di accedere anche ad altri servizi, pertanto, in questo senso viene definito semplicemente «navigatore». Il programma di navigazione tipico dovrebbe consentire anche la visualizzazione di immagini, ma un buon programma che utilizza soltanto un terminale a caratteri può essere utilizzato in qualunque condizione, quindi, tale possibilità non deve essere scartata a priori.
L'integrazione di diversi protocolli impone l'utilizzo di un sistema uniforme per indicare gli indirizzi, per poter conoscere subito in che modo si deve effettuare il collegamento. Per questo, quando si utilizza un navigatore, si devono usare indirizzi espressi in modo standard, precisamente secondo il formato URI, o Uniform resource identifier. Attualmente, è ancora in uso la vecchia definizione, URL, Uniform resource locator, che in pratica rappresenta un sottoinsieme di URI. Attraverso questa modalità, è possibile definire tutto quello che serve per raggiungere una risorsa: protocollo, nodo (host), porta, percorso. Il formato generale di un URI è descritto nel capitolo 461.
Un problema che riguarda un po' tutti i programmi clienti, sono i tempi morti. Questi programmi, quando tentano di accedere a un risorsa senza riuscirci, restano a lungo in attesa prima di restituire una segnalazione di errore. Se si utilizza un servente DNS e questo non risulta raggiungibile, oppure a sua volta non riesce a raggiungere gli altri serventi DNS di livello superiore, le attese sono dovute al ritardo nelle risposta date dal servizio di risoluzione dei nomi.
All'avvio, la maggior parte dei navigatori cerca di raggiungere la propria pagina di presentazione (home page) e questo richiede un collegamento in funzione in quel momento. |
Quando si vuole utilizzare un programma del genere soltanto per delle attività locali e si notano questi problemi nelle risposte, se si gestisce un servente DNS locale che, almeno temporaneamente, non ha accesso alla rete esterna, si può provare a disattivarlo utilizzando il comando seguente:
#
rndc stop
[Invio]
In seguito, per riattivarlo è sufficiente utilizzare il comando opposto.
#
rndc start
[Invio]
Se la propria rete locale non accede mai all'esterno, non è necessario tentare di risolvere nomi che non appartengono all'ambito locale. Se si utilizza un servizio di risoluzione dei nomi basta togliere (commentandola) la direttiva contenuta nel file named.conf
che fa riferimento al dominio principale, rappresentato da un punto singolo.
|
Lynx (1) è la prova di ciò che può fare un buon programma per i terminali senza grafica, anche per la navigazione nella rete. A prima vista può risultare complicato da utilizzare, ma il tempo necessario per imparare il suo funzionamento risulta poi ricompensato.
Lynx è un navigatore completo, a parte la limitazione dovuta alla mancanza della grafica. È stato adattato a un gran numero di piattaforme, Dos inclusa (408.11). La sua semplicità lo rende prezioso in tutte quelle situazioni in cui non è possibile utilizzare il sistema grafico X.
Prima di avviare Lynx la prima volta, conviene controllare il suo file di configurazione generale. Molto probabilmente conviene modificare qualcosa. Si tratta di /etc/lynx.cfg
.
Vale la pena di cambiare: l'indicazione della pagina iniziale, la posizione della guida e della pagina indice. Infatti, in questi casi, si fa riferimento a pagine HTML in rete, mentre è normale che ognuno si crei una propria pagina di inizio e che si abbiano a disposizione anche localmente i file della guida.
Queste indicazioni potrebbero apparire come negli esempi seguenti.
|
In tutti i casi mostrati, si fa riferimento a un file nell'elaboratore locale, localhost
. Nel primo caso si fa riferimento al file /etc/lynx-inizio.html
, nel secondo a /usr/share/doc/lynx/lynx_help/lynx_help_main.html
, nel terzo a /etc/lynx-indice.html
. Probabilmente, tutto il resto può essere lasciato come si trova.
Lynx si compone in pratica dell'eseguibile lynx. Questo può essere avviato con l'indicazione di un indirizzo iniziale (di solito una pagina), espresso secondo lo standard URI, oppure può trattarsi semplicemente di un file indicato senza formalità particolari. Se non è indicato alcun file iniziale, viene utilizzato quanto specificato nella configurazione contenuta nel file lynx.cfg
, alla voce STARTFILE.
lynx [opzioni] [risorsa_iniziale] |
Per approfondire il funzionamento di Lynx si può consultare la pagina di manuale lynx(1) e soprattutto la guida interna che si ottiene con il comando lynx -help.
Tabella 326.3. Alcune opzioni. |
Segue la descrizione di alcuni esempi.
$
lynx -display_charset=utf-8 http://a2.swlibero.org
[Invio]
Avvia Lynx specificando la disponibilità di un terminale operante con la codifica UTF-8, per visualizzare quanto si ottiene da http://a2.swlibero.org
.
$
lynx -term=vt100 file://localhost/home/tizio/indice.html
[Invio]
Avvia Lynx specificando il tipo di terminale (vt100) e il file iniziale.
$
lynx -dump file://localhost/home/tizio/indice.html
[Invio]
Fa in modo che Lynx restituisca attraverso lo standard output l'URI richiesto, dopo averlo trasformato in un file di testo normale.
$
lynx -dump -nolist file://localhost/home/tizio/indice.html
[Invio]
Come nell'esempio precedente, senza aggiungere in coda l'elenco dei riferimenti ipertestuali contenuti nel documento.
$
lynx
[Invio]
Avvia Lynx utilizzando esclusivamente la configurazione contenuta nel file lynx.cfg
.
Lynx permette l'utilizzo di una serie di comandi abbinati a tasti più o meno mnemonici. Non è disponibile un menù, quindi occorre un minimo di preparazione prima di poter utilizzare Lynx.
L'abbinamento tra i comandi e i tasti corrispondenti è definito all'interno del file di configurazione (lynx.cfg
), ma in generale conviene non alterare le definizioni predefinite.
Figura 326.4. Lynx dopo essere stato avviato con l'indicazione di un indirizzo specifico.
|
La figura 326.4 mostra in che modo si presenta Lynx dopo essere stato avviato con l'indicazione di una pagina HTML particolare. Nelle ultime righe dello schermo (o della finestra) appare un riepilogo dei comandi principali. Prima di richiamare la guida (help) conviene configurare correttamente il file lynx.cfg
al riguardo: molto probabilmente i file della guida sono disponibili localmente, mentre di solito la configurazione predefinita fa riferimento alla guida ottenibile attraverso la rete. Nella sezione dedicata alla configurazione è già stato spiegato come fare per correggere questo particolare.
La navigazione all'interno di un documento ipertestuale è relativamente semplice, anche se non si può utilizzare il mouse. In particolare va ricordato l'uso dei tasti freccia, per cui [freccia su] e [freccia giù] servono per spostare il cursore da un riferimento (link) a un altro, [freccia sinistra] permette di tornare al documento precedente e [freccia destra] permette di seguire il riferimento su cui si trova il cursore.
Lynx mantiene la traccia dei riferimenti attraverso cui si è giunti al documento attuale, [Backspace] permette di visualizzarla in modo da poter selezionare un riferimento da lì.
Un'altra cosa importante è la possibilità di ottenere un elenco compatto di tutti i riferimenti contenuti nel documento visualizzato attualmente. Ciò si ottiene con il comando LIST corrispondente al tasto [l] oppure [L].
Figura 326.5. Il comando LIST permette di ottenere un riassunto di tutti i riferimenti contenuti nella pagina visualizzata.
|
La tabella 326.6 mostra l'elenco dei comandi utili per la navigazione di un documento ipertestuale.
Tabella 326.6. Elenco dei comandi di navigazione di Lynx.
|
Il documento visualizzato può essere salvato o stampato in vari modi. Il comando di stampa viene richiamato utilizzando il tasto [p], attraverso il quale si accede a un menù da cui è possibile scegliere il tipo di stampa. In particolare potrebbe essere possibile anche l'invio di una copia a un indirizzo di posta elettronica, o il salvataggio su un file.
Quando Lynx carica un documento, lo trasforma immediatamente nel formato da visualizzare. Per ottenere il sorgente di quel documento occorre ripetere l'operazione di caricamento senza alcuna trasformazione. Questo si ottiene con il tasto [\]. Una volta ottenuto un documento visualizzato come si vuole, si può stampare (o salvare) nel modo visto poco sopra.
Figura 326.7. Il sorgente della pagina può essere visualizzato dopo un'ulteriore operazione di caricamento.
|
Un documento, o più in generale un file, può essere caricato nella sua forma originale, normalmente per poterlo salvare. Questo si ottiene con il comando DOWNLOAD abbinato normalmente al tasto [d]: quando viene premuto si ottiene il caricamento del file a cui punta il riferimento sul quale si trova il cursore in quel momento. Il file viene collocato in una posizione transitoria, quindi viene richiesto all'utente cosa farne: salvarlo o altro. Anche quando si vuole avere un documento HTML senza trasformazioni conviene utilizzare questo sistema. Infatti, il caricamento del sorgente con il tasto [\] espande i caratteri di tabulazione.
Tabella 326.8. Elenco dei comandi di stampa e salvataggio di Lynx.
|
Con il comando OPTIONS, normalmente richiamabile con il tasto [o], è possibile ottenere il menù delle opzioni, attraverso il quale è poi possibile modificare alcuni comportamenti di Lynx. La figura 326.9 mostra un esempio di ciò che può apparire. In particolare, per richiamare una voce da modificare, si utilizza il tasto corrispondente alla lettera maiuscola della voce stessa.
Figura 326.9. Durante il funzionamento, Lynx può essere configurato parzialmente.
|
I riferimenti più importanti possono essere salvati in un file apposito. Il nome e la posizione di questo file è definito nel file di configurazione lynx.cfg
e comunque può essere cambiato con il menù di configurazione appena descritto.
Per salvare un riferimento nel segnalibro, si utilizza il comando ADD_BOOKMARK collegato normalmente al tasto [a]. Subito dopo viene richiesto di specificare cosa si intende salvare. Con il tasto [d] si intende salvare il riferimento alla pagina corrente, con il tasto [l] si intende salvare il riferimento su cui si trova il cursore.
Per richiamare l'elenco dei riferimenti salvati, si utilizza semplicemente il tasto [v]. Mentre si visualizza questo elenco, oltre che selezionare un riferimento, si può anche eliminare ciò che non serve più, con il tasto [r].
Il funzionamento di Lynx viene concluso con il comando QUIT, [q], oppure ABORT, [Q]. Nel primo caso viene chiesto di confermare la richiesta, mentre nel secondo ciò non avviene.
Links(2) è un altro navigatore fatto per i terminali a caratteri, senza grafica. A differenza di Lynx (del quale imita il suono del nome) ha una gestione migliore delle tabelle, che vengono incorniciate e rappresentate abbastanza bene; inoltre dispone di un menù a tendina, a cui si accede con il tasto [Esc].
Links si compone in pratica dell'eseguibile links, che si avvia in modo simile a Lynx:
links [opzioni] [risorsa_iniziale] |
Esistono comunque una serie di varianti di questo programma, tra cui una realizzata anche per il sistema grafico X:
elinks [opzioni] [risorsa_iniziale] |
links2 [opzioni] [risorsa_iniziale] |
xlinks2 [opzioni] [risorsa_iniziale] |
Il file iniziale va indicato in forma di URI; eventualmente, se si tratta di file locali si può indicare il percorso senza URI. A ogni modo, l'URI di un file locale avrebbe la forma seguente:
file://percorso_del_file |
Durante il funzionamento di Links, la navigazione con la tastiera è abbastanza intuitiva e anche il mouse può essere utilizzato.
Tabella 326.10. Elenco dei comandi di navigazione di Links. |
Links può essere avviato utilizzando diverse opzioni nella riga di comando. Tuttavia, di solito queste non si usano, potendo configurare il suo funzionamento attraverso il menù, ricordando poi di salvare i cambiamenti selezionando l'apposita voce del menù: {Save options
}. Le modifiche vengono salvate nel file ~/.links/links.cfg
, che eventualmente può anche essere ritoccato a mano, se si intuisce la sintassi delle sue direttive.
In generale, la prima cosa che conviene modificare è la codifica dei caratteri usata per la visualizzazione, portandola normalmente a ISO 8859-1.(3)
Figura 326.11. Links in funzione, con il menù di configurazione aperto.
|
Figura 326.12. Esempio di visualizzazione di una pagina divisa in colonne attraverso una tabella con Links.
|
Le versioni comuni di Links per lo schermo a caratteri condividono generalmente la limitazione al funzionamento con un terminale configurato per una codifica a 8 bit, escludendo così la codifica UTF-8.
W3M(4) è un altro navigatore fatto per i terminali a caratteri, senza grafica, che però funziona correttamente con la codifica UTF-8. Anche in questo caso la gestione delle tabelle è buona.
W3M si compone in pratica dell'eseguibile w3m, che si avvia in modo simile a Lynx:
w3m [opzioni] risorsa_iniziale |
Il file iniziale va indicato in forma di URI; eventualmente, se si tratta di file locali si può indicare il percorso senza URI.
Durante il funzionamento di W3M, la navigazione con la tastiera è abbastanza intuitiva e sono disponibili anche altri comandi molto interessanti. Si veda la tabella 326.13.
Tabella 326.13. Alcuni dei comandi di W3M.
|
W3M può essere avviato utilizzando diverse opzioni nella riga di comando. Tuttavia, di solito queste non si usano, potendo configurare il suo funzionamento attraverso il comando [o].
Oltre a quelli descritti sono disponibili molti altri tipi di clienti HTTP. In particolare, è il caso di segnalare Amaya (capitolo 467), Mozilla e derivati (come Firefox), Konqueror.
Figura 326.14. Konqueror. |
Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>
3) Nel momento in cui si scrive questo, Links non è in grado di gestire una codifica UTF-8, che invece è quella più probabile nei sistemi attuali.
4) W3M software libero con licenza speciale
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome http_introduzione_e_utilizzo_del_servizio.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]