[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [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 la stessa cosa.(1) 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 259.
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
In seguito, per riattivarlo basterà utilizzare il comando opposto.
#
rndc start
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.
options { directory "/etc/bind"; }; // //zone "." { // type hint; // file "named.root"; //}; // zone "0.0.127.in-addr.arpa" { type master; file "zone/127.0.0"; };
Lynx (2) è 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 (203.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 converrà 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.
STARTFILE:file://localhost/etc/lynx-inizio.html HELPFILE:file://localhost/usr/share/doc/lynx/lynx_help/lynx_help_main.html DEFAULT_INDEX_FILE:file://localhost/etc/lynx-indice.html |
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 [opzioni] [risorsa_iniziale]
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.
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.
Segue la descrizione di alcuni esempi.
$
lynx -term=vt100 file://localhost/home/tizio/indice.html
Avvia Lynx specificando il tipo di terminale (vt100) e il file iniziale.
$
lynx -dump file://localhost/home/tizio/indice.html
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
Come nell'esempio precedente, senza aggiungere in coda l'elenco dei riferimenti ipertestuali contenuti nel documento.
$
lynx
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.
|
La figura 159.1 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].
|
La tabella 159.2 mostra l'elenco dei comandi utili per la navigazione di un documento ipertestuale.
Tabella 159.2. Elenco dei comandi di navigazione di Lynx.
Comando | Tastiera | Descrizione | |
freccia su | Sposta il cursore sul riferimento precedente. | ||
freccia giù | Sposta il cursore sul riferimento successivo. | ||
freccia sinistra | Torna al documento precedente. | ||
freccia destra | Segue il riferimento su cui si trova il cursore. | ||
PREV_PAGE | pagina su | - | Visualizza la schermata precedente del documento. |
NEXT_PAGE | pagina giù | + | Visualizza la schermata successiva del documento. |
HOME | Home | Ctrl+a | Visualizza l'inizio del documento. |
END | Fine | Ctrl+e | Visualizza la fine del documento. |
Backspace | Visualizza i riferimenti seguiti precedentemente. | ||
LIST | l | L | Visualizza un riassunto dei riferimenti contenuti. |
MAIN_MENU | m | Visualizza il documento iniziale (main). | |
INDEX_SEARCH | i | Visualizza il documento indice. | |
GOTO | g | Permette di indicare un indirizzo URI da raggiungere. | |
INTERRUPT | z | Sospende un processo di I/O in corso. | |
RELOAD | Ctrl+r | Ricarica il documento corrente. | |
REFRESH | Ctrl+l | Ctrl+w | Rigenera l'immagine visualizzata sullo schermo. |
WHEREIS | / | Permette di cercare una stringa nel documento. | |
NEXT | n | La prossima corrispondenza della stringa di ricerca. |
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.
|
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 159.3. Elenco dei comandi di stampa e salvataggio di Lynx.
Comando | Tastiera | Descrizione | |
p | Stampa o salva il documento così come appare. | ||
SOURCE | \ | Carica e visualizza il sorgente del documento. | |
DOWNLOAD | d | D | Carica il file a cui punta il riferimento evidenziato. |
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 159.4 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.
|
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 (3) è 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]
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 159.4. 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.
|
|
W3M (4) è un altro navigatore fatto per i terminali a caratteri, senza grafica. 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 159.5.
Tabella 159.5. Alcuni dei comandi di W3M.
Tastiera | Descrizione |
H | Mostra il riepilogo dei comandi di navigazione. |
pagina su, b, Esc v | Fa scorrere il testo all'indietro di una schermata. |
pagina giù, spazio, Ctrl+v | Fa scorrere il testo in avanti di una schermata. |
freccia su, Ctrl+p, k | Porta il cursore sulla riga precedente. |
freccia giù, Ctrl+n, j | Porta il cursore sulla riga successiva. |
Ctrl+b, h | Porta il cursore sul carattere precedente. |
Ctrl+f, l | Porta il cursore sul carattere successivo. |
J | Fa scorrere il testo in alto di riga. |
K | Fa scorrere il testo in basso di riga. |
< | Fa scorrere il testo verso sinistra. |
> | Fa scorrere il testo verso destra. |
, | Fa scorrere il testo verso sinistra di una sola colonna. |
. | Fa scorrere il testo verso destra di una sola colonna. |
Inizio, g | Raggiunge l'inizio del file. |
Fine, G | Raggiunge la fine del file. |
Ctrl+u, Esc Tab | Raggiunge il riferimento ipertestuale precedente. |
Tab | Raggiunge il riferimento ipertestuale successivo. |
Invio | Accede al riferimento ipertestuale su cui si trova il cursore. |
a, Esc Invio | Salva il riferimento ipertestuale in un file. |
u | Mostra alla base dello schermo l'URI corrispondente al riferimento ipertestuale su cui si trova il cursore. |
c | Mostra alla base dello schermo l'URI attuale. |
= | Mostra le informazioni sull'URI attuale. |
F | Cerca di elaborare una cornice (frame). |
U | Permette di accedere a un URI da inserire manualmente. |
F | Permette di accedere a un file da indicare manualmente. |
R | Ricarica il documento. |
S | Salva il documento su un file, come lo si vede sullo schermo. |
Esc s | Salva il documento su un file in forma originale. |
s | Seleziona uno dei documenti visitati di recente. |
o | Accede a una maschera di opzioni di funzionamento. |
Ctrl+s, / | Richiede l'inserimento di una stringa di ricerca nella pagina attuale. |
Ctrl+r, ? | Come [/], ma ricerca all'indietro. |
n | Continua la ricerca in avanti. |
N | Continua la ricerca all'indietro. |
q | Conclude il funzionamento chiedendo conferma. |
Q | Conclude il funzionamento senza chiedere conferma. |
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 264), Galeon e Mozilla.
Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini --daniele @ swlibero.org
1) URL è precisamente un sottoinsieme di URI.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome http_introduzione_e_utilizzo_del_servizio.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]