Nel mondo di oggi, Uniform Resource Locator ha acquisito un'importanza senza precedenti. Che sia per il suo impatto sulla società, sull'economia, sulla scienza o sulla cultura, Uniform Resource Locator occupa oggi un posto di rilievo. Le sue molteplici sfaccettature e la sua rilevanza in diversi ambiti ne fanno un argomento di interesse diffuso. In questo articolo esploreremo le varie dimensioni di Uniform Resource Locator e la sua influenza sulla vita di tutti i giorni. Attraverso un'analisi approfondita ed eclettica, cercheremo di comprendere meglio l'importanza di Uniform Resource Locator oggi e le sue potenziali implicazioni per il futuro.
Lo Uniform Resource Locator, anche noto con la sigla URL (lett. "localizzatore uniforme di risorse"), è una sequenza di caratteri che identifica univocamente l'indirizzo di una risorsa su una rete di computer, come ad esempio un documento, un'immagine, un video, tipicamente presente su un hostserver e resa accessibile a un client.
È perlopiù utilizzato per indicare risorse web (http), risorse recuperabili tramite protocolli di trasferimento file (ftp), condivisioni remote (smb) o accessi a sistemi esterni (ssh). La risoluzione dell'URL in indirizzo IP, necessario per l'instradamento con il protocollo IP avviene tramite DNS.
La struttura di un URL è codificata nel documento RFC 3986 della IETF, scritta da Tim Berners-Lee, e si compone normalmente di sei parti, alcune delle quali opzionali:
protocollo://@]host
protocollo
Identifica il protocollo, tipicamente di livello applicazioni, da utilizzare per l'accesso al server. I protocolli più comuni sono l'HTTP, HTTPS, FTP, MMS ecc. Se il protocollo non viene specificato, generalmente il browser utilizza il protocollo "http" come predefinito. In alcuni casi l'utente potrebbe vedere la pagina caricata con protocollo https, ma questo solo perché il web server è già stato contattato con protocollo http e ha risposto al browser con un codice di stato di reindirizzamento (3xx, di solito 301 o 302).
://
Separatore tra il protocollo e il resto dell'URL: di solito l'host, o opzionalmente lo username.
username:password@ (opzionale)
Subito dopo il protocollo, è possibile specificare le credenziali di autenticazione (username e password) per l'accesso alla risorsa. L'autenticazione in URL è però estremamente rischiosa, in quanto le credenziali di accesso vengono inviate al server in chiaro, ovvero non cifrate.
Inoltre questo sistema si presta a tecniche di phishing che possono indurre in errore gli utenti, conducendoli ad una destinazione completamente diversa da quella attesa. Ad esempio http://www.sitosicuro.it|searchq=wikipedia@www.truffatori.com può a prima vista sembrare l'URL di una pagina di www.sitosicuro.it, quando in realtà conduce a www.truffatori.com.
Da diversi anni, un update del browser obsoleto Internet Explorer (832894) ha disattivato la funzione di autenticazione, rendendo inefficaci i tentativi di phishing. Altri browser come Firefox hanno mantenuto la funzione, avvertendo tuttavia l'utente del possibile tentativo di phishing.
host
Identifica il server su cui risiede la risorsa. Può essere rappresentato direttamente da un indirizzo IP o (più comunemente) da un nome di dominio che il software converte in indirizzo IP avvalendosi del servizio DNS.
porta (opzionale)
Identifica la porta del servizio di rete al quale inoltrare la richiesta. Il numero di porta può essere omesso quando corrisponde alla porta standard associata al protocollo indicato dall'URL (ad esempio 80 per HTTP o 443 per HTTPS).
percorso (opzionale)
Percorso (pathname) nel file system del server che identifica la risorsa (generalmente una pagina web, una immagine o un file multimediale). Se il nome del file non viene specificato, il server può essere configurato per restituire un file predefinito.
querystring (opzionale)
Se richiesto, al termine dell'url è possibile aggiungere una query string separandola con l'utilizzo del simbolo "?". La query string è una stringa di caratteri che consente di passare al server uno o più parametri.
Di norma, la query string ha questo formato: ?parametro1=valore¶metro2=valore2.
fragment (opzionale)
Se presente, indica una parte o una posizione all'interno della risorsa, come la query string è possibile utilizzare più parametri, con la differenza che, essendo utilizzati dal client per sapere come muoversi all'interno di una risorsa non verranno inviati al server.
Di norma, il fragment ha questo formato: #parametro1=valore¶metro2=valore2.