La maggior parte delle volte è accettabile dire cose come "Ho acquistato un dominio" o "Le nostre immagini sono ospitate su un altro sito", anche se non è del tutto vero. Tuttavia, in alcuni contesti è necessario essere più precisi. Ad esempio, quando gestisci i cookie, devi capire la differenza tra sito e origine.
I nomi delle parti dell'URL sono specificati in uno standard che definisce anche un'API JavaScript:
- Lo standard URL definisce gli URL e i concetti correlati per consentire agli ingegneri di creare browser web interoperabili.
- Il componente API URL dello standard definisce i metodi per fornire l'accesso a parti di una stringa URL, come lo schema o l'origine.
Questo documento spiega una serie di termini utilizzati con le stringhe URL HTTP o HTTPS. Non
copre altri tipi di URL, come URL di file o dati. Per termini come
host e origin, le definizioni accurate sono intrinsecamente complesse, pertanto questo
documento fornisce esempi e link allo standard URL, anziché
tentare spiegazioni complete.
Puoi utilizzare JavaScript per ottenere i nomi dei componenti URL definiti dall'API URL. Ad esempio:
let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);
Analizzatore URL
Modifica l'URL riportato di seguito per vedere come vengono denominate le parti della stringa dell'URL. Puoi anche aprire questa pagina in una scheda separata all'indirizzo https://chrome.dev/url-parts/.
I nomi delle parti dell'URL sono elencati in ordine alfabetico di seguito.
Dominio di primo livello nazionale (ccTLD)
Un dominio di primo livello definito nell'elenco dei codici paese ISO 3166-1.
Nome di dominio
Le parti di un URL HTTP o HTTPS separate da punti: tutto ciò che segue lo schema, ma precede il percorso o la porta (se specificata). Ogni parte del nome di dominio è nota come etichetta.
| URL | Nome di dominio |
|---|---|
| https://example.github.io/path | example.github.io |
| https://support.example.org.au:443 | support.example.org.au |
Dominio di primo livello effettivo (eTLD)
Una voce nell'elenco dei suffissi pubblici, tra cui un TLD e (per gli eTLD con più parti) domini aggiuntivi sottostanti: di secondo livello, di terzo livello e così via.
- Ad esempio:
com,com.au,github.io,sa.edu.au,schools.nsw.edu.au.
Un "suffisso pubblico", come questi esempi, è un nome con cui è possibile registrare i domini. L'elenco dei suffissi pubblici è un elenco di tutti i suffissi pubblici noti e viene aggiornato di frequente. I browser, inclusi Chromium e Firefox, utilizzano l'elenco nelle loro build.
eTLD+1
Vedi dominio registrabile.
Un eTLD più il sottodominio che lo precede.
- Ad esempio:
example.com,example.org.au,example.github.io,example.sa.edu.au,example.schools.nsw.edu.au.
Nome file
Non definito nello standard URL e non fa parte dell'API URL, ma di uso comune per fare riferimento alla parte finale dell'URL, non al percorso, in base all'ipotesi, spesso errata, che l'URL corrisponda direttamente a una struttura di directory.
Ad esempio, con https://example.com/dir/file.html, file.html potrebbe essere indicato come nome file.
Il valore del nome file viene utilizzato anche dai browser per denominare un asset se viene scaricato.
Ad esempio, https://example.com/images/image.jpg in genere viene salvato
localmente in image.jpg.
Fragment
Una stringa che segue il carattere # alla fine di un URL che fornisce un identificatore di frammento.
- Ad esempio, l'URL
https://example.com/cats#tabbyha un valore dell'identificatore di frammentotabby.
La parte che include # è nota come hash o ancora.
Puoi anche creare un link a un frammento di testo ed evidenziarlo.
L'hash viene restituito dall'API URL anziché dal frammento.
Nome di dominio completo (FQDN)
Un indirizzo completo per un sito web o un server, che corrisponde a un indirizzo IP.
| URL | FQDN |
|---|---|
| https://example.com:1234/cats | example.com |
| https://api.example.github.io | api.example.github.io |
Il nome di dominio completo per un URL non include la porta, anche se viene utilizzata una porta non predefinita.
Hash (o ancoraggio)
Una stringa che segue il carattere # alla fine di un URL che fornisce un identificatore di frammento. (In alcuni contesti questo elemento è chiamato "ancora".)
La parte che esclude # è nota come frammento.
Puoi anche creare un link a un frammento di testo ed evidenziarlo.
L'hash viene restituito dall'API URL anziché dal frammento.
Host
Come definito nello standard URL, un host può essere un nome di dominio, un indirizzo IPv4, un indirizzo IPv6, un host opaco o un host vuoto.
- La definizione di
hostnello standard URL non include la porta. URL.hostinclude la porta, a meno che non sia quella predefinita per lo schema.URL.hostnamenon include la porta.
| URL | URL.host |
|---|---|
| https://www.example.com:443/cat |
www.example.com// 443 is the default port for the scheme
|
| https://www.example.com:1234/cat | www.example.com:1234 |
| https://cat.example.github.io | cat.example.github.io |
Nome host
Il nome host è definito dall'API JavaScript URL, ma non altrove dallo standard
URL. Per maggiori dettagli, consulta la sezione Rappresentazione dell'host.
URL.hostname restituisce l'host senza la porta.
| URL | URL.hostname |
|---|---|
| https://www.example.com:443/cat | www.example.com |
| https://www.example.com:1234/cat | www.example.com |
| https://cat.example.github.io | cat.example.github.io |
Origine
Lo standard URL definisce origin e
rimanda allo standard HTML per
lo sfondo.
Per gli URL HTTP o HTTPS, URL.origin restituisce lo schema, l'host e la porta (a meno che la porta non sia quella predefinita per lo schema).
| URL | URL.origin |
|---|---|
| https://www.example.com:443/cat | https://www.example.com |
| https://www.example.com:1234/cat | https://www.example.com:1234 |
| https://cat.example.github.io | https://cat.example.github.io |
Parametro
Consulta Parametri di ricerca
Password
Vedi nome utente.
Percorso
Per un URL HTTP o HTTPS, la parte dopo il dominio e la porta (se definiti), incluso un filename (se definito), ma non la stringa di ricerca o l'hash.
| URL | URL.pathname |
|---|---|
| https://example.com | [empty string] |
| https://example.com:8000/search?q=tabby | /search |
| https://example.github.io/cat/pattern#tabby | /cat/pattern |
| https://example.github.io/README.md | /README.md |
A volte "Percorso" viene utilizzato per fare riferimento al percorso senza il nome file. Ad
esempio, per l'URL https://example.com/cat/pattern/tabby.html, il "percorso"
è /cat/pattern.
Porta
Il numero dopo un : in un URL che identifica una porta di rete. Ad esempio, per
l'URL https://example.com:1234/tabby il numero di porta è 1234.
Il numero di porta deve essere un numero intero senza segno a 16 bit, ovvero un numero intero compreso tra 0 e 65535 inclusi.
Per un URL HTTP, la porta predefinita è 80; per HTTPS, la porta predefinita è 443. Un URL non deve specificare il numero di porta, a meno che non venga utilizzata una porta non predefinita.
L'API restituisce una stringa vuota se la porta è quella predefinita per lo schema.
| URL | URL.port |
|---|---|
| https://example.com | // empty string |
| https://example.com:443/foo | // empty string: port is default for scheme |
| https://www.example.com:1234/foo | 1234 |
Protocollo
Lo schema seguito da : (ad esempio http: o https:).
protocol è disponibile dall'API URL, ma scheme no.
Query (o "stringa di query")
La parte search dell'URL, escluso il ? iniziale.
Dominio registrabile
- Per un URL con un eTLD composto da una sola parte, ad esempio
comoorg(ovvero un eTLD che corrisponde a un TLD), il dominio e il dominio di secondo livello che lo precede: ad esempio,example.comoexample.org. - Per un URL con un eTLD in due parti in cui è consentita solo la registrazione di terzo livello (ovvero voci nell'elenco dei suffissi pubblici come
com.auegithub.io), il dominio di primo livello in due parti ("suffisso pubblico") e il nome di dominio di terzo livello immediatamente precedente. Ad esempio:example.org.auoexample.github.io. - Per i domini eTLD con tre o più parti, il dominio eTLD e il dominio precedente.
Scheme
La parte dell'URL (prima di ://) che definisce il protocollo di rete (o l'azione da intraprendere
dallo user agent) quando viene effettuata una richiesta a un URL. Ad esempio, una richiesta a un URL con uno schema https deve essere effettuata utilizzando il protocollo HTTPS. Per una richiesta a un URL con uno schema
come file, mailto o git che non corrisponde a un protocollo
di rete, il comportamento dipende dallo user agent. Ad esempio, quando un utente fa clic
su un link mailto, la maggior parte dei browser apre l'applicazione email predefinita, utilizzando
i valori nell'URL href del link.
Cerca
Un punto interrogativo seguito da una serie di coppie chiave-valore che rappresentano parametri e i relativi valori, forniti dopo il pathname.
| URL | URL.search |
|---|---|
| https://example.com/cats?pattern=tabby&mood=bonkers | ?pattern=tabby&mood=bonkers |
| https://example.com/cats:443?pattern=tabby | ?pattern=tabby |
La query o "stringa di query" si riferisce a search senza
il ? iniziale.
Vedi anche Parametri di ricerca.
Parametri di ricerca
Fai riferimento a un elemento di dati trasmesso in una stringa di ricerca (o "stringa di query").
- Ad esempio, per
https://example.com/cats?pattern=tabby&mood=bonkers, la stringa di ricerca ha due parametri:pattern=tabbyemood=bonkers.
Dominio di secondo livello
Il dominio prima di un dominio di primo livello.
Per l'URL
https://www.example.com, il dominio di secondo livello èexample.com, un sottodominio del dominio di primo livellocom.Per
https://example.org.au, il dominio di primo livello èau, il dominio di secondo livello èorge il dominio di terzo livello èexample. In questo esempio,org.auè un sottodominio diaueexample.org.auè un sottodominio diorg.au.
Sito
Sito è definito dallo standard HTML, insieme a stesso sito, che include lo schema e stesso sito senza schema.
Il sito non è definito nello standard URL o nell'API JavaScript URL.
In questo contesto:
- Per un URL HTTP o HTTPS con un eTLD composto da una sola parte, ad esempio
https://example.com, il sito è composto dascheme, dall'eTLD e dall'etichetta precedente. Ad esempio, per l'URLhttps://www.example.com/cat, il sito èhttps://example.com. Per questo URL, l'eTLD è uguale al dominio di primo livello. - Per gli eTLD in più parti come
co.uk,github.ioosa.edu.au, il "sito" è costituito dascheme, dall'eTLD e dall'etichetta precedente. Ad esempio, per l'URLhttps://cat.example.co.uk/tabby, il sito èhttps://example.co.uk, mentre perhttps://www.education.sa.gov.auil sito èhttps://education.sa.gov.au.
| URL | Sito (con schema ed eTLD + 1) |
|---|---|
| https://cat.example.com/tabby | ("https", "example.com") |
| https://cat.example.co.uk/tabby | ("https", "example.co.uk") |
A differenza di origine, il sito non include la porta.
Sottodominio
Un dominio all'interno di un dominio di livello superiore.
Per i siti con domini di primo livello in una sola parte, come com o org, le parti
prima del dominio di primo livello, ciascuna separata da un punto.
www.example.comè un sottodominio diexample.com.support.api.example.orgè un sottodominio diapi.example.org, che è un sottodominio diexample.org.
Per i domini di primo livello eTLD in due parti in cui sono consentite solo registrazioni di terzo livello(ovvero voci
nell'elenco dei suffissi pubblici come co.uk e
github.io), i sottodomini sono le parti del nome di dominio precedenti.
- Ad esempio:
cat.example.co.ukè un sottodominio diexample.co.uk.
Frammento di testo
Un tipo di frammento che consente di creare link ed evidenziare un intervallo di testo all'interno di una pagina. Quando un utente segue un link con un frammento di testo, il browser tenta di individuare, scorrere e evidenziare il testo all'interno della pagina.
Un frammento di testo inizia con :~:text= seguito dal termine di ricerca.
Ad esempio, per creare un link alla prima occorrenza del testo "frammento"
in questa pagina, utilizza l'URL https://web.dev/articles/url-parts#:~:text=fragment.
Scopri di più: frammenti di testo.
Dominio di primo livello (TLD)
Un nome di dominio elencato nel database della zona radice, ad esempio com o org. Alcuni domini di primo livello sono
domini di primo livello nazionali, come uk e tv.
Quando descrivi le parti di un URL HTTP o HTTPS, il TLD è il nome di dominio che segue l'ultimo punto.
- Per
https://example.org, il dominio di primo livello dell'URL èorg. - Per
https://example.org.au, il dominio di primo livello dell'URL èaueorgè un dominio di secondo livello (anche seorgè anche un dominio di primo livello).org.auè un eTLD in due parti.
L'elenco dei suffissi pubblici degli eTLD include domini con una, due o più parti, quindi un TLD può essere anche un eTLD. Ad esempio:
- Per
https://example.com, l'eTLD dell'URL ècom, che è anche un TLD.
Nome utente
All'inizio dell'URL possono essere forniti un nome utente e una password facoltativi, ma questa operazione è stata ritirata per motivi di sicurezza e verrà ignorata in molti casi.
Ad esempio, con https://user123:password1@example.com il nome utente è
user123. Tieni presente che il nome utente (e la password) è in testo normale e non criptato.
Se il nome utente contiene i simboli : o @, questi devono essere codificati nell'URL in %3A
e %40 rispettivamente.
Scopri di più
- WHATWG: URL Living Standard
- WHATWG: HTML Living Standard
- API URL
- Informazioni su "stesso sito" e "stessa origine"
- RFC: Uniform Resource Locators (URL)
- RFC: URI, URL e URN
- Root Zone Database (directory dei TLD)
- Elenco dei suffissi pubblici (directory degli eTLDs): "Un suffisso pubblico è un insieme di nomi DNS o caratteri jolly concatenati con punti. Rappresenta la parte di un nome di dominio che non è sotto il controllo del singolo dichiarante.")
- Glossario ICANN
- Che cos'è un nome di dominio completo?
- In quanti modi puoi dividere un URL e dare un nome alle parti?
- Glossario di MDN Web Docs
- Che cos'è un URL?
- La cronologia dell'URL