Convalida dei nomi di dominio (conformità alle norme RFC)

Verifica che un nome di dominio rispetti le regole sintattiche delle norme RFC 1035 e 1123. Controlla una per una la lunghezza delle etichette, la lunghezza complessiva, i caratteri ammessi e la posizione dei trattini, indicando il motivo preciso di ogni violazione.

Che cos'è la convalida dei nomi di dominio

Lo strumento scompone la verifica di una stringa inserita rispetto alle regole sintattiche dei nomi di dominio stabilite dalle norme RFC 1035 (pubblicata nel 1987) e RFC 1123 (pubblicata nel 1989), valutando ciascuna regola singolarmente invece di restituire un unico verdetto di validità o non validità. Poiché indica con precisione quale regola sia stata violata e, quando pertinente, quale etichetta (ciascuna delle parti di un dominio separate da un punto) ne sia la causa, risulta particolarmente utile quando si sa già che una stringa viene rifiutata da qualche parte ma non se ne conosce il motivo.

È importante capire che cosa questo strumento non fa: verifica soltanto la sintassi, cioè la forma della stringa come testo. Non interroga il sistema dei nomi per confermare che il dominio sia realmente registrato, non controlla se a quell'indirizzo funzioni un sito web e non indica se il nome sia attualmente disponibile per la registrazione. Per questo si presta bene a confermare che un nome candidato per un nuovo dominio, o un nome host che si sta inserendo in un file di configurazione, sia sintatticamente corretto prima di compiere il passo ulteriore della registrazione o della messa in produzione.

Come si usa lo strumento di convalida dei nomi di dominio

  1. Inserire un nome di dominio Digitate nel campo il nome di dominio da controllare, per esempio example.com. Togliete prima un eventuale protocollo iniziale come «https://» o un percorso finale come «/path», in modo da lasciare soltanto la parte relativa al dominio.
  2. Osservare l'esito della verifica Non appena si digita, sei regole vengono valutate in tempo reale e ciascuna riceve l'etichetta Superata, Violazione o Nota.
  3. Leggere il motivo di una violazione Ogni riga contrassegnata come Violazione riporta un motivo preciso, come l'etichetta responsabile o il numero dei suoi caratteri, così da individuare esattamente quale parte della stringa correggere.
  4. Provare i pulsanti di esempio per i casi limite I pulsanti Esempio valido ed Esempio non valido inseriscono nel campo stringhe di prova che si collocano esattamente ai confini delle regole, permettendo di osservarne rapidamente il comportamento.

Consigli per sfruttarlo al meglio

  • Lo strumento verifica la sintassi definita dalle norme RFC 1035 e 1123 e non accerta se il dominio sia effettivamente registrato o utilizzabile, cioè se esista nel sistema dei nomi.
  • Prima di scrivere di vostra mano un'espressione regolare per la convalida di un modulo, conviene osservare qui il comportamento nei casi limite — esattamente 63 caratteri, trattini in posizioni particolari — per non trascurare nulla in fase di sviluppo.
  • Per i nomi che contengono caratteri non ASCII, come i domini in ideogrammi, la sola verifica dei caratteri ammessi resta indeterminata. Per un controllo accurato convertiteli prima nella notazione «xn--» con lo strumento di conversione Punycode.
  • Il caso di un dominio di primo livello composto di sole cifre non si presenta quasi mai nella pratica, ma è incluso di proposito fra i controlli per evitare, nella convalida dei dati inseriti dagli utenti, che un indirizzo IP venga scambiato per un nome di dominio.
  • Le stesse regole valgono per la parte che segue la chiocciola in un indirizzo di posta elettronica, cioè il dominio: lo strumento si presta quindi anche a una verifica sommaria degli indirizzi.

Quando può servire questo strumento

Verificare un'espressione regolare di convalida prima di pubblicarla

Prima di scrivere di proprio pugno un'espressione regolare per convalidare un campo di dominio, conviene provare qui i casi limite — un'etichetta di esattamente 63 caratteri, un trattino proprio all'inizio o alla fine — per individuare per tempo eventuali lacune dell'implementazione.

Controllare in anticipo un nome candidato per un nuovo dominio

Quando si sceglie il nome di un nuovo servizio o di un sottodominio, si può verificarne la correttezza sintattica ancor prima di cercarlo presso un registrar.

Controllare a campione la parte di dominio di un indirizzo di posta

Poiché la parte di un indirizzo di posta elettronica successiva alla chiocciola segue in genere le stesse regole di un nome host, questo strumento funge anche da controllo secondario leggero per la propria logica di convalida degli indirizzi.

Indagare il motivo di un rifiuto

Se un sistema segnala che una stringa non è un nome di dominio valido e il motivo non è evidente, incollatela qui per individuare con precisione quale regola non venga rispettata.

Glossario

Etichetta
Ciascuno dei segmenti di un nome di dominio separati da un punto. In www.example.com vi sono tre etichette: «www», «example» e «com». La norma RFC 1035 fissa i limiti di lunghezza e di caratteri ammessi a livello di singola etichetta, non del dominio nel suo complesso.
Dominio di primo livello (TLD)
L'etichetta più a destra di un nome di dominio, come .com o .it. Si trova al vertice della gerarchia del sistema dei nomi, subito sotto la radice invisibile.
Nome di dominio pienamente qualificato (FQDN)
Un nome di dominio scritto per intero, dal nome host fino al dominio di primo livello, senza omettere alcuna parte. In senso stretto un FQDN termina con un punto finale che rappresenta la radice del sistema dei nomi, per esempio example.com., anche se nell'uso quotidiano questo punto viene di norma omesso.
Nome di dominio internazionalizzato (IDN)
Un nome di dominio che contiene caratteri non ASCII, per esempio ideogrammi giapponesi o cinesi oppure la scrittura araba. Poiché il sistema dei nomi può gestire soltanto caratteri ASCII, un IDN viene convertito in Punycode prima di essere effettivamente registrato o risolto.
Punycode
Un sistema di codifica (RFC 3492) che converte un'etichetta di un IDN contenente caratteri non ASCII in una stringa ASCII gestibile dal sistema dei nomi. Nel DNS si usa la forma in cui IDNA antepone a quel risultato il prefisso xn-- (la A-label). I browser di norma la riconvertono nei caratteri originali per la visualizzazione nella barra degli indirizzi.
Formato di trasmissione
La forma binaria con cui le interrogazioni e le risposte del sistema dei nomi vengono effettivamente scambiate in rete. Ogni etichetta è preceduta da un singolo ottetto che ne indica la lunghezza, e quell'ottetto può rappresentare soltanto valori da 0 a 63: è questa l'origine tecnica del limite di 63 caratteri per etichetta.
Nome host
Un nome usato per identificare un dispositivo in rete. È un tipo particolare di nome di dominio, e la norma RFC 1123 limita i caratteri ammessi per un nome host a lettere, cifre e trattini: esattamente l'insieme di regole controllato da questo strumento.

Domande frequenti

La norma RFC 1035 stabilisce che ogni etichetta, cioè ciascuna parte separata dai punti, sia lunga da 1 a 63 caratteri e che il dominio nel suo complesso non superi i 253 caratteri, limite che deriva dai 255 ottetti previsti dal formato di trasmissione. Nella pratica, però, i singoli registri possono imporre restrizioni ulteriori.

Secondo le norme RFC 1035 e 1123 un nome di host può contenere soltanto lettere, cifre e trattini: il carattere di sottolineatura non è ammesso. Compare però nelle etichette di record diversi dai nomi di host, come i record TXT o SRV del sistema dei nomi, per esempio in «_dmarc.example.com».

La norma RFC 1123 prescrive che ogni etichetta cominci e finisca con una lettera o una cifra. Un trattino in prima o in ultima posizione rende ambigua l'analisi sintattica; la regola serve inoltre a evitare problemi di compatibilità con le vecchie implementazioni del sistema dei nomi.

I nomi di dominio internazionalizzati vengono sempre convertiti in Punycode, cioè nella notazione ASCII che comincia con «xn--», prima di essere registrati nel sistema dei nomi. Poiché lo strumento è progettato per convalidare la stringa già convertita, per questi domini conviene procedere prima alla conversione con l'apposito strumento e poi al controllo sintattico.
Tool-kun

A proposito — perché la convalida dei nomi di dominio viene continuamente reinventata

Il controllo sintattico di un nome di dominio sembra risolvibile con una sola espressione regolare, eppure è un terreno su cui molti sviluppatori sono inciampati scrivendo implementazioni proprie. La convalida di un indirizzo di posta in un modulo, l'analisi di un nome di host in un file di configurazione, il controllo di un indirizzo web in un'interfaccia di programmazione: in ogni occasione occorre trattare stringhe che somigliano a un dominio, ma le realizzazioni che rispecchiano fedelmente le regole formali delle norme RFC 1035 del 1987 e RFC 1123 del 1989 non sono affatto numerose.

Il doppio limite di lunghezza — 63 caratteri per etichetta e 253 complessivi — deriva per esempio dal formato di trasmissione del sistema dei nomi, cioè dalla forma binaria che viaggia realmente in rete. Ogni etichetta è preceduta da un ottetto che ne indica la lunghezza, e il fatto che quel valore sia limitato all'intervallo fra 0 e 63, il massimo esprimibile con sei bit, è la ragione diretta del limite sulle etichette.

Anche l'idea che i domini di primo livello non debbano essere composti di sole cifre ha un retroscena curioso. La RFC 1123 (1989) ha consentito ai nomi host di cominciare con una cifra, aggiungendo però che un nome host valido non può mai avere la forma #.#.#.#, perché almeno l'etichetta di livello più alto sarà alfabetica. Non è formulato come un requisito MUST, ma anche la successiva RFC 3696 spiega che esiste una regola che di fatto richiede che i domini di primo livello non siano interamente numerici. Molti risolutori e molti browser si servono di questa premessa per stabilire che una stringa come 192.168.1.1 vada trattata come indirizzo IP e non come nome di dominio.