I componenti di un URL
Un URL (Uniform Resource Locator) è un tipo specifico di URI (Universal Resource Identifier). Un URL individua normalmente una risorsa esistente su Internet. L'URL viene utilizzato quando un client Web effettua una richiesta a un server, in relazione a una risorsa.
Questo argomento è un riepilogo degli URL e degli URI. Se è necessario saperne di più, i concetti di URI e URL sono definiti da Internet Society e IETF (Internet Engineering Task Force) Request for Comments document RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax (https://www.ietf.org/rfc/rfc2396.txt).
In breve, un URI viene definito come qualsiasi stringa di caratteri che identifica una risorsa. Un URL è definito come quegli URI che identificano una risorsa in base alla sua ubicazione o ai mezzi utilizzati per accedervi, piuttosto che in base a un nome o a un altro attributo della risorsa.
Una nuova forma di identificativo risorsa, l'IRI (Internationalized Resource Identifier), consente l'uso di caratteri e formati adatti per lingue nazionali diverse dall'inglese. Un IRI può essere utilizzato al posto di un URI o di un URL quando le applicazioni coinvolte con la richiesta e la risposta supportano gli IRI. Per ulteriori informazioni sulle IRI, consultare IRI (Internationalized Resource Identifiers).
- Uno schema. Lo schema identifica il protocollo da utilizzare per accedere alla risorsa su Internet. Può essere HTTP (senza SSL) o HTTPS (con SSL).
- Un host. Il nome host identifica l'host che contiene la risorsa. Ad esempio,
www.example.com
. Un server fornisce i servizi nel nome dell'host, ma gli host e i server non hanno un'associazione uno - a - uno. Fare riferimento a Nomi host.I nomi host possono essere seguiti anche da un numero porta. Fare riferimento a Numeri porta. I numeri di porta noti per un servizio sono normalmente omessi dall'URL. La maggior parte dei server utilizza numeri di porta noti per HTTP e HTTPS, quindi la maggior parte degli URL HTTP omette il numero di porta.
- Un percorso. Il percorso identifica la risorsa specifica nell'host a cui il client Web desidera accedere. Ad esempio,
/software/htp/cics/index.html
. - Una stringa di query. Se viene utilizzata una stringa di query, essa segue il componente del percorso e fornisce una stringa di informazioni che la risorsa può utilizzare per alcuni scopi (ad esempio, come parametri per una ricerca o come dati da elaborare). La stringa di query è di solito una stringa di coppie nome e valore; ad esempio,
term=bluebird
. Le coppie nome e valore sono separate l'una dall'altra da una e commerciale (&); ad esempio,term=bluebird&source=browser-search
.
scheme://host:port/path?query
- Lo schema è seguito da due punti e due barre.
- Se viene specificato un numero di porta, tale numero segue il nome host, separato da due punti.
- Il nome percorso inizia con una singola barra.
- Se viene specificata una stringa di query, viene preceduta da un punto interrogativo.
http://www.example.com/software/index.html
Con un numero di porta specificato, l'URL è:http://www.example.com:1030/software/index.html
Un URL può essere seguito da un identificativo del frammento. Il separatore utilizzato tra l'URL e l'identificativo del frammento è il carattere #. Un identificativo di frammento viene utilizzato per puntare un browser Web a un riferimento o a una funzione nell'elemento che ha appena richiamato. Ad esempio, se l'URL identifica una pagina HTML, è possibile utilizzare un identificativo frammento per indicare una sottosezione all'interno della pagina, utilizzando l'ID della sottosezione. In questo caso, il browser Web generalmente visualizza la pagina all'utente in modo che la sottosezione sia visibile. L'azione intrapresa dal browser Web per un identificativo frammento varia a seconda del tipo di supporto dell'elemento e del significato definito dell'identificativo frammento per tale tipo di supporto.
Anche altri protocolli, come FTP (File Transfer Protocol) o Gopher, utilizzano gli URL. Gli URL utilizzati da questi protocolli potrebbero avere una sintassi diversa da quella utilizzata per HTTP.