Nella maggior parte dei casi, va bene dire cose come "Ho acquistato un dominio" o "Le nostre immagini sono ospitate su un altro sito", anche se non è esattamente così. Tuttavia, in alcuni contesti è necessario essere più precisi. Ad esempio, quando si tratta di 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 metodi per fornire l'accesso a parti di una stringa URL, come lo schema o l'origine.
Questo documento illustra una serie di termini utilizzati con le stringhe URL HTTP o HTTPS.
Non copre altri tipi di URL, come gli 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 dell'URL definiti dall'API URL. Ad esempio:
let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);
Strumento di analisi degli URL
Modifica l'URL di seguito per vedere i nomi delle parti della stringa URL. Puoi anche aprirlo in una scheda separata all'indirizzo url-parts.glitch.me.
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 prima del percorso o della 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 di seguito: di secondo livello, di terzo livello e così via.
- Ad esempio:
com
,com.au
,github.io
,sa.edu.au
,schools.nsw.edu.au
.
Un "sufisso pubblico", come questi esempi, è un nome sotto il quale è possibile registrare i domini. L'elenco dei suffissi pubblici è un elenco di tutti i suffissi pubblici noti e viene aggiornato di frequente. Browser come 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 definiti nello standard dell'URL e non fanno parte dell'API URL, ma vengono comunemente utilizzati per fare riferimento alla parte finale, non-path, dell'URL in base al presupposto (spesso errata) che l'URL sia mappato 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 assegnare un nome a 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 e fornisce un identificatore di frammento.
- Ad esempio, l'URL
https://example.com/cats#tabby
ha un valore identificativo del frammentotabby
.
La parte che include #
è nota come hash o ancoraggio.
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 di un sito web o di 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 |
L'FQDN di un URL non include la porta, anche se viene utilizzata una porta diversa da quella predefinita.
Hash (o ancoraggio)
Una stringa che segue il carattere # alla fine di un URL e fornisce un identificatore di frammento. In alcuni contesti viene chiamata "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 degli URL, un host può essere un nome di dominio, un indirizzo IP v4, un indirizzo IPv6, un host opaco o un host vuoto.
- La definizione di
host
dello standard URL non include la porta. URL.host
include la porta, a meno che non sia quella predefinita per lo schema.URL.hostname
non 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 URL
JavaScript, ma non altrove dallo standard URL. Per ulteriori dettagli, consulta la 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 contiene un link allo standard HTML per il background.
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
Vedi 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 nome file (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 il termine "Percorso" viene utilizzato per fare riferimento al percorso del file senza il nome del file. Ad esempio, per l'URL https://example.com/cat/pattern/tabby.html
, "path" è /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 non firmato a 16 bit: in altre parole, 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 nell'API URL, ma non scheme
.
Query (o "stringa di query")
La parte di ricerca dell'URL, escluso il carattere ?
iniziale.
Dominio registrabile
- Per un URL con un eTLD composto da una sola parte come
com
oorg
(ovvero un eTLD che corrisponde a un TLD), il dominio e il dominio di secondo livello che lo precede: ad esempio,example.com
oexample.org
. - Per un URL con un dominio di primo livello composto da due parti in cui è consentita solo la registrazione di terzo livello (ovvero le voci nell'elenco dei suffissi pubblici come
com.au
egithub.io
), il dominio di primo livello composto da due parti ("sufisso pubblico") e il nome di dominio di terzo livello subito prima. Ad esempio:example.org.au
oexample.github.io
. - Per i domini di primo livello generici con tre o più parti, il dominio di primo livello generico e il dominio precedente.
Scheme
La parte dell'URL (prima di ://
) che definisce il protocollo di rete (o l'azione che deve essere intrapresa 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 i 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 |
query
o "stringa di query" si riferisce a search
senza
il carattere ?
principale.
Vedi anche Parametri di ricerca.
Cerca parametri
Fai riferimento a un dato passato 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=tabby
emood=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 èorg
e il dominio di terzo livello èexample
. In questo esempio,org.au
è un sottodominio diau
eexample.org.au
è un sottodominio diorg.au
.
Sito
Sito è definito dall'standard HTML, insieme a stessa proprietà, che include lo schema, e stessa proprietà senza schema.
Il sito non è definito nello standard URL o nell'API URL JavaScript.
In questo contesto:
- Per un URL HTTP o HTTPS con un TLD di primo livello elettronico composto da una sola parte, come
https://example.com
, il sito è costituito dascheme
, dal TLD di primo livello elettronico 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 composti da più parti come
co.uk
,github.io
osa.edu.au
, "sito" è costituito dascheme
, dall'eTLD e dall'etichetta che li precede. Ad esempio, per l'URLhttps://cat.example.co.uk/tabby
, il sito èhttps://example.co.uk
e perhttps://www.education.sa.gov.au
il 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 origin, il sito non include port.
Sottodominio
Un dominio all'interno di un dominio di livello superiore.
Per i siti con domini di primo livello composti da 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 generici composti da 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 un link a un intervallo di testo all'interno di una pagina ed evidenziarlo. Quando un utente segue un link con un frammento di testo, il browser tenta di individuare, scorrere fino al testo e evidenziarlo 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 "fragment"
in questa pagina, utilizza l'URL https://web.dev/articles/url-parts#:~:text=fragment
.
Scopri di più: Snippet di testo.
Dominio di primo livello (TLD)
Un nome di dominio elencato nel database della zona principale, 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 dominio di primo livello è il nome di dominio che segue il punto finale.
- Per
https://example.org
, il dominio di primo livello dell'URL èorg
. - Per
https://example.org.au
, il dominio di primo livello dell'URL èau
eorg
è un dominio di secondo livello (anche seorg
è anche un dominio di primo livello).org.au
è un eTLD composto da due parti.
L'elenco dei suffissi pubblici degli eTLD include domini con una, due o più parti, pertanto un TLD può essere anche un eTLD. Ad esempio:
- Per
https://example.com
, l'eTLD dell'URL ècom
, che è anche un TLD.
Nome utente
È possibile fornire un nome utente e una password facoltativi all'inizio dell'URL, ma per motivi di sicurezza questo è stato ritirato e verrà ignorato in molti casi.
Ad esempio, con https://user123:password1@example.com
il nome utente è
user123
. Tieni presente che il nome utente (e la password) sono in testo normale e non sono crittografati.
Se il nome utente contiene i simboli :
o @
, devono essere codificati in URL in %3A
e %40
rispettivamente.
Scopri di più
- WHATWG: URL Living Standard
- WHATWG: HTML Living Standard
- API URL
- Informazioni su "stessa origine" e "stessa origine"
- RFC: Uniform Resource Locator (URL)
- RFC: URI, URL e URN
- Root Zone Database (directory of TLDs)
- Elenco dei suffissi pubblici (directory di eTLDs: "Un suffisso pubblico è un insieme di nomi DNS o caratteri jolly concatenati da punti. Rappresenta la parte di un nome di dominio che non è sotto il controllo del singolo registrante.")
- Glossario ICANN
- Che cos'è un nome di dominio completo?
- In quanti modi puoi suddividere un URL e assegnare un nome ai pezzi?
- Glossario di MDN Web Docs
- Che cos'è un URL?
- Cronologia dell'URL