Newsgroup: it.comp.www.html
Titolo: Help gestione domini III livello

Help gestione domini III livello
Salve.
Vorrei chiedere un parere di fattibilita' *tecnica* di questo mio
progetto. Avevo gia' posto giorni fa quesiti simili ma adesso ho
le idee un po' piu' chiare (solo un po').
Spero di ricevere risposte semplici e chiare da persone competenti
(occorre poco per essere piu' competenti di me).
Spero che vi sia qualche anima buona che abbia la pazienza di mettersi
a leggere attentamente il mio progetto e di consigliarmi. Eccolo.
Mettiamo che io prenda un dominio di secondo livello col nome
simpatico, come "
nice.ly
" o "
love.ly
". Per semplicita', parlero'
di un generico dominio  "xxxx.yy".
A questo punto, se io sono padrone di xxxx.yy , mi risulta che
automaticamente sono padrone di tutti i livelli  zzzz.xxxx.yyyy ,
per esempio  
john.nice.ly
  .
Ora, mettiamo che io voglia affittare questi domini di terzo
livello  zzzz.xxxx.yy  a dei miei clienti.
I miei clienti hanno gia' un sito con una URL (che non c'entra
niente con il mio dominio, per esempio
www.geocities.com/Area51/Vattelapesca/5678
 ).
Ebbene, vorrei fare un redirect *automatico* del dominio
zzzz.xxxx.yy su questa URL del mio cliente, in modo che
un utente scriva  
john.nice.ly
  e senza accorgersi di nulla
venga portato su  geocities....vattelapesca/5678 .
Questo ovviamente deve essere valido per ciascuno dei miei
clienti (che possono essere migliaia, si spera).
La "bellezza" del progetto sta nella semplificazione del nome
della URL del dominio del mio cliente, che quindi viene
attirato dalla mia offerta.
Comunque qui stiamo parlando solo di fattibilita' *tecnica*
e non di convenienza o marketing.
Ora, mettiamo che io sia un fesso qualsiasi senza un server
(come effettivamente sono). Che cosa devo fare?
Per prima cosa ho capito che dovro':
- prendere il dominio xxxx.yy ;
- rivolgermi ad un provider che abbia un server e mi ospiti su un
  dominio virtuale con il suo IP;
- utilizzare il DNS del mio provider per far si' che  xxxx.yy
  corrisponda al mio IP.
E questo punto che cosa devo fare?
Specifico che vorrei agire il piu' possibile da solo, cioe' rivolgendomi
il meno possibile al mio provider (anche perche' non posso permettermi
di pagare un tecnico 100mila lire l'ora).
Allo stadio attuale non so praticamente NULLA di cio' che dovrei
fare, ma siccome so programmare in C, Basic (oltre che in HTML),
suppongo di poter imparare a fare anche questa cosa.
Il guaio e' che non so nemmeno che cosa dovrei imparare per realizzare
questa cosa: Java?! Asp?! Perl?! Boh?!
Qualcuno mi aveva suggerito: prendi Linux (gratis), prendi Apache
(gratis), metterlo sul tuo server, e sei pronto per fare il redirect.
Ho chiesto maggiori spiegazioni ma lui si e' arrabbiato e ha detto
che mi aveva gia' detto tutto.
Ora, io non ho un server, e immagino che sul server che utilizzero'
vi siano gia' Linux e Apache o comunque qualcosa che permetta al server
di funzionare.
Ma questo non mi spiega come diavolo viene fatto il redirect.
Immagino che vi sia da costruire una lunga lista (un database)
con scritto:
john.nice.ly
  ---> 
www.geocities.com/Area51/Vattelapesca/5687/
altro.nice.ly
  ---> 
members.xoom.com/Vattelapesca2/
terzo.nice.ly
  ---> 
www.aol.com//Vattelapesca3/Arivattelapesca4/
Ma questo database dove si trova fisicamente? E' uno script?
In che linguaggio? Il guaio e' che io non so esattamente che cosa
succede quando il DNS traduce 
nice.ly
 nel mio IP e quindi viene
trovato tale IP. Ci sara' qualche script che
parte automaticamente, immagino, ma non ho idea di che cosa sia.
Appurato questo, dovrei costruire qualche procedura automatica
che permetta al mio cliente di entrare nel sito e di procurarsi
automaticamente un dominio di terzo livello col nome di sua
preferenza, e con la sua URL verso cui redirect-are.
Cioe' il cliente trovera' una semplice pagina web con scritto:
scegli il tuo nome. Lui lo sceglie. Gli viene risposto: congratulazioni,
il tuo dominio e' libero. Inserisci la URL verso cui redirect-are,
e abbiamo finito.
Anche in questo caso non so che cosa si dovrebbe fare: in asp? Java?
O addirittura in semplice HTML con dei cgi? Boh?!
Nota: so che su 
www.granitecanyon.com
 viene fornito gratuitamente
l'uso di un DNS (!). Quindi potrei iniziare ad esercitarmi li'
sopra! Pero' non so nemmeno da che parte cominciare.
Spero che qualcuno mi possa indirizzare.
Spero di poter arrivare a capire che cosa posso studiare per
arrivare a sviluppare da solo questo sistema.
Accetto anche proposte di assistenza a prezzi stracciatissimi
(per esempio da studenti disperati che siano bravissimi e competenti
e siano contentissimi di essere sottopagati a 15000 lire l'ora...).
GRAZIE!
Ciao
Fabrizio
amo...@iname.com

<script language="JavaScript">
<!--
    location.href="URL"
//-->
</script>
Questo codice lo metti nel corpo del documento HTML che viene aperto
accedendo al dominio.
Per quelli che non supportano JS metti anche il tag meta:
<head>
<meta content-type="refresh" value="URL, 0">
</head>
E infine un semplice link per chi ha il browser più sfigato
<a href="URL">Sito di tizio</a>

>>>>> "Fabrizio" == Fabrizio  <amo...@XXXiname.com> writes:
    Fabrizio> Help gestione domini III livello
    Fabrizio> Salve.
    Fabrizio> Vorrei chiedere un parere di fattibilita' *tecnica* di
    Fabrizio> questo mio progetto. Avevo gia' posto giorni fa quesiti
    Fabrizio> simili ma adesso ho le idee un po' piu' chiare (solo un
    Fabrizio> po').  Spero di ricevere risposte semplici e chiare da
    Fabrizio> persone competenti (occorre poco per essere piu'
    Fabrizio> competenti di me).
La fattibilita' tecnica e' sicura, ci sono gia' servizi che svolgono
funzioni praticamente uguali.
    Fabrizio> Spero che vi sia qualche anima buona che abbia la
    Fabrizio> pazienza di mettersi a leggere attentamente il mio
    Fabrizio> progetto e di consigliarmi. Eccolo.
    Fabrizio> Mettiamo che io prenda un dominio di secondo livello col
    Fabrizio> nome simpatico, come "
nice.ly
" o "
love.ly
". Per
    Fabrizio> semplicita', parlero' di un generico dominio "xxxx.yy".
    Fabrizio> A questo punto, se io sono padrone di xxxx.yy , mi
    Fabrizio> risulta che automaticamente sono padrone di tutti i
    Fabrizio> livelli zzzz.xxxx.yyyy , per esempio 
john.nice.ly
 .
Esatto.
    Fabrizio> Ora, mettiamo che io voglia affittare questi domini di
    Fabrizio> terzo livello zzzz.xxxx.yy a dei miei clienti.  I miei
    Fabrizio> clienti hanno gia' un sito con una URL (che non c'entra
    Fabrizio> niente con il mio dominio, per esempio
    Fabrizio> 
www.geocities.com/Area51/Vattelapesca/5678
 ).
    Fabrizio> Ebbene, vorrei fare un redirect *automatico* del dominio
    Fabrizio> zzzz.xxxx.yy su questa URL del mio cliente, in modo che
    Fabrizio> un utente scriva 
john.nice.ly
 e senza accorgersi di
    Fabrizio> nulla venga portato su geocities....vattelapesca/5678 .
    Fabrizio> Questo ovviamente deve essere valido per ciascuno dei
    Fabrizio> miei clienti (che possono essere migliaia, si spera).
La versione 1.1 dello standard HTTP prevede un messaggio di
redirezione (codice 3xx) che farebbe proprio al caso tuo (onestamente
non ricordo se anche l'HTTP 1.0 lo prevede, e non ho sottomano la mia
lista degli RFC da consultare. :)
    Fabrizio> La "bellezza" del progetto sta nella semplificazione del
    Fabrizio> nome della URL del dominio del mio cliente, che quindi
    Fabrizio> viene attirato dalla mia offerta.  Comunque qui stiamo
    Fabrizio> parlando solo di fattibilita' *tecnica* e non di
    Fabrizio> convenienza o marketing.
Anche perche', a livello di marketing, non saresti ne' il primo ne'
l'unico a tentare una cosa del genere. Altri ci hanno provato ed hanno
dovuto chiudere (vedi Monolith).
    Fabrizio> Ora, mettiamo che io sia un fesso qualsiasi senza un
    Fabrizio> server (come effettivamente sono). Che cosa devo fare?
    Fabrizio> Per prima cosa ho capito che dovro': - prendere il
    Fabrizio> dominio xxxx.yy ; - rivolgermi ad un provider che abbia
    Fabrizio> un server e mi ospiti su un dominio virtuale con il suo
    Fabrizio> IP; - utilizzare il DNS del mio provider per far si' che
    Fabrizio> xxxx.yy corrisponda al mio IP.
Fin qui ci siamo.
    Fabrizio> E questo punto che cosa devo fare?  Specifico che vorrei
    Fabrizio> agire il piu' possibile da solo, cioe' rivolgendomi il
    Fabrizio> meno possibile al mio provider (anche perche' non posso
    Fabrizio> permettermi di pagare un tecnico 100mila lire l'ora).
    Fabrizio> Allo stadio attuale non so praticamente NULLA di cio'
    Fabrizio> che dovrei fare, ma siccome so programmare in C, Basic
    Fabrizio> (oltre che in HTML), suppongo di poter imparare a fare
    Fabrizio> anche questa cosa.  Il guaio e' che non so nemmeno che
    Fabrizio> cosa dovrei imparare per realizzare questa cosa: Java?!
    Fabrizio> Asp?! Perl?! Boh?!
    Fabrizio> Qualcuno mi aveva suggerito: prendi Linux (gratis),
    Fabrizio> prendi Apache (gratis), metterlo sul tuo server, e sei
    Fabrizio> pronto per fare il redirect.  Ho chiesto maggiori
    Fabrizio> spiegazioni ma lui si e' arrabbiato e ha detto che mi
    Fabrizio> aveva gia' detto tutto.
Il suggerimento e' buono, specie perche' Apache ha un supporto ottimo
per le redirezioni, ma non e' l'unica soluzione. Si può anche
utilizzare uno script CGI che, in base al nome del sottodominio
virtuale, interroga un database e trova l'URL corrispondente.
    Fabrizio> Ora, io non ho un server, e immagino che sul server che
    Fabrizio> utilizzero' vi siano gia' Linux e Apache o comunque
    Fabrizio> qualcosa che permetta al server di funzionare.  Ma
    Fabrizio> questo non mi spiega come diavolo viene fatto il
    Fabrizio> redirect.
Il redirect di per se', come gia' detto, consiste semplicemente in un
messaggio del server che comunica al client che la risorsa da lui
richiesta e' stata spostata, e si trova in altro loco (indicato dal
server stesso, ed e' questa la differenza con i messaggi 4xx, con i
quali il server comunica l'impossibilità di trovare la richiesta in
assoluto). 
Il problema e' che il redirect si puo' fare in tante maniere diverse,
alcune possibili o meno a seconda del tipo di server che il gestore in
questione mette a disposizione (non tutti utilizzano Apache, purtroppo
:) ). Ad esempio, con Apache si può utilizzo il modulo mod_rewrite
innestato all'interno di varie dichiarazioni <vhost> (virtual host)
per redirigere le richieste ai vari host virtuali (
john.love.ly
,
jimmy.love.ly
 e via discorrendo) ad altri host:
    Fabrizio> Immagino che vi sia da costruire una lunga lista (un
    Fabrizio> database) con scritto: 
john.nice.ly
 --->
    Fabrizio> 
www.geocities.com/Area51/Vattelapesca/5687/
    Fabrizio> 
altro.nice.ly
 ---> 
members.xoom.com/Vattelapesca2/
    Fabrizio> 
terzo.nice.ly
 --->
    Fabrizio> 
www.aol.com//Vattelapesca3/Arivattelapesca4/
E' sicuramente la soluzione piu' comoda, specie se intendi gestire la
cosa ad un livello un po' maggiore di uno o due sottodomini virtuali
(come mi sembra di capire). 
Occhio che la questione dei sottodomini virtuali e' abbastanza
spinosa, nel senso che ce ne sono vari tipi: quello che interessa a
te, credo, consiste in un "name-base virtual host", ovvero un host
virtuale identificato non gia' dall'indirizzo IP (che e' uno solo, e
questo per ragioni di carattere economico) ma dall'header "Host" nella
richiesta HTTP. L'unico problema, in questo caso, e' che l'header in
questione e' stato introdotto con la versione 1.1 dello standard HTTP,
quindi con browser molto vecchi potresti avere problemi; tuttavia,
questo genere di browser sono oramai veramente pochi, ed inoltre ci
sono soluzioni alternative (una fornita da Apache, ad esempio,
consiste nel presentare automaticamente una pagina con una lista degli
host virtuali quando il client non manda un header "Host"). 
    Fabrizio> Ma questo database dove si trova fisicamente? E' uno
    Fabrizio> script?  In che linguaggio? Il guaio e' che io non so
    Fabrizio> esattamente che cosa succede quando il DNS traduce
    Fabrizio> 
nice.ly
 nel mio IP e quindi viene trovato tale IP. Ci
    Fabrizio> sara' qualche script che parte automaticamente,
    Fabrizio> immagino, ma non ho idea di che cosa sia.
Un database non e' "scritto" in nessun linguaggio, e' una semplice
collezione di dati da interrogare (il piu' delle volte con un
linguaggio, questo si', ovvero l'SQL, oppure qualche linguaggio di
livello piu' elevato che si occupi di semplificare le
richieste). Presumibilmente il database si trovera' sullo stesso
computer che ospita il server, ma cio' non e' strettamente necessario.
Per quanto riguarda quello che succede, il DNS traduce il nome in un
indirizzo IP, il browser manda dei pacchetti con una richiesta di
connessione a quell'indirizzo IP (ed alla porta specificata, che il
piu' delle volte sara' 80) e, se il server non e' giu' per qualche
motivo, esso risponde. Come risponde dipende in tutto e per tutto da
come e' configurato (e qui entri in gioco tu...).
Il problema fondamentale e' che devi appurare il tipo di server che il
provider ti fornisce, oppure se ti da' direttamente uno spazio in cui
installare il TUO server. In ogni caso, a seconda del server, varia la
configurazione, e qui c'e' veramente poco da discutere finche' non si
conosce il punto di partenza. 
    Fabrizio> Appurato questo, dovrei costruire qualche procedura
    Fabrizio> automatica che permetta al mio cliente di entrare nel
    Fabrizio> sito e di procurarsi automaticamente un dominio di terzo
    Fabrizio> livello col nome di sua preferenza, e con la sua URL
    Fabrizio> verso cui redirect-are.  Cioe' il cliente trovera' una
    Fabrizio> semplice pagina web con scritto: scegli il tuo nome. Lui
    Fabrizio> lo sceglie. Gli viene risposto: congratulazioni, il tuo
    Fabrizio> dominio e' libero. Inserisci la URL verso cui
    Fabrizio> redirect-are, e abbiamo finito.
    Fabrizio> Anche in questo caso non so che cosa si dovrebbe fare:
    Fabrizio> in asp? Java?  O addirittura in semplice HTML con dei
    Fabrizio> cgi? Boh?!
Io personalmente farei un CGI che aggiorni il database che verra' poi
consultato; comunque il linguaggio in se' non e' importante, che
utilizzi ASP, PHP3 o il protocollo CGI e' relativo. Java lo lascerei
stare, mi sembra eccessivo... :)
[SNIP]
    Fabrizio> Spero che qualcuno mi possa indirizzare.  Spero di poter
    Fabrizio> arrivare a capire che cosa posso studiare per arrivare a
    Fabrizio> sviluppare da solo questo sistema.
    Fabrizio> Accetto anche proposte di assistenza a prezzi
    Fabrizio> stracciatissimi (per esempio da studenti disperati che
    Fabrizio> siano bravissimi e competenti e siano contentissimi di
    Fabrizio> essere sottopagati a 15000 lire l'ora...).
Se hai bisogno di una mano (e magari mi vuoi pagare :) ) scrivimi in
e-mail. Evitiamo di intasare in NG che non e' adibito a questo genere
di questioni.
    Fabrizio> GRAZIE!
    Fabrizio> Ciao Fabrizio
    Fabrizio> 
amo...@iname.com
Saluti,
Andrea Glorioso
P.S.: ideona: potresti scrivere la pagina principale utilizzando ASP o
PHP3 (a seconda della piattaforma su cui ti trovi ad operare), in modo
che a seconda del sottodominio virtuale richiesto il client venga
reindirizzato ad un'altro URL, ricavato tramite l'interrogazione di un
database usando come chiave il nome del sottodominio virtuale.
Se vuoi degli esempi di reindirizzamento con Apache, vai a guardarti:
http://www.engelschall.com/pw/apache/rewriteguide/