scheme:scheme-specific-part
kde scheme je identifikace přístupového protokolu
scheme-specific-part je část závislá na typu protokolu
Pro protokoly, používané v prostředí sítě Internet, má protokolově závislá část tvar:
//[user[:password]@]host[:port][/path]
V odkazech na hypertextové dokumenty se většinou vyskytuje část host (jméno serveru) a path (přístupová cesta k dokumentu). Pokud server pracuje na jiném portu, než je standardní, musí odkaz obsahovat také číslo portu (port). Jméno (user) a heslo (password) bývá používáno při přístupu k poštovním schránkám nebo při přenosu souborů protokolem ftp. Význam části path závisí na protokolu. Pro protokol ftp je zde přímo jméno souboru, pro news jméno konference, apod. U protokolu http je zde úplné jméno souboru dle běžných konvencí systémů Unix s tím, že vrchol stromu dokumentů začíná v adresáři, který je dán konfigurací serveru (neodpovídá tedy vrcholu adresářového stromu). Server neumožní přímý přístup k souborům, které se nacházejí mimo strukturu uvedeného adresáře a jeho podadresářů.
Dokument RFC 1738 definuje pouze absolutní URL, tedy odkazy, které obsahují plnou adresu umístění. U absolutního odkazu musí být uvedeno minimálně jméno uzlu host a přístupová cesta path, začínající lomítkem. V hypertextových dokumentech jsou však běžně používány zkrácené odkazy, u kterých se předpokládá, že odkaz směřuje relativně vzhledem k umístění dokumentu, ve kterém je odkaz použit. Relativním odkazem lze zkrátit zápis odkazu a zároveň učinit dokument nezávislým na konkrétním umístění. Pokud jsou odkazy na všechny návazné soubory relativní, není problém přesunout kompletní podstrom někam jinam. Dokument může být dostupný různými protokoly, například file, http, ftp a při použití relativního odkazu je pak použit stejný protokol, jako byl použit pro získání dokumentu, ze kterého odkaz vede. Pokud by byly odkazy absolutní, mohly by být odkazované dokumenty nedostupné.
Formát relativního URL byl standardizován v červnu 1995 dokumentem RFC 1808. Na rozdíl od obecné specifikace absolutního URL, kde je část scheme-specific-part závislá na protokolu, je relativní URL specifikováno přesněji:
scheme://net_loc/path;params?query#fragment
kde net_loc/path je protokolově závislá část stejná jako u absolutních URL v Internetu
params jsou parametry
query je dotaz (formuláře)
fragment návěští, není součástí URL, při analýze musí být ignorováno
Jednotlivé části mohou být vynechány, včetně oddělovačů, ale tak, aby bylo rozpoznatelné, o kterou část se jedná. Pokud je například vypuštěno lomítko před path, nemůže být současně uvedeno net_loc. Některé protokoly nelze s relativními URL použít, jedná se například o protokoly mailto, news a telnet. U protokolů gopher, prospero a wais může mít protokolově závislá část v některých případech jiný formát a pak nelze relativní odkazy také použít. Poslední skupina protokolů dovoluje použití relativních odkazů vždy, ale závisí na implementaci, zda příslušný server umí relativní odkaz realizovat (protokoly file, ftp, http a nntp). Relativní odkazy jsou u těchto protokolů vztahovány k bázovému URL, které je odvozeno z URL použitého pro získání dokumentu nebo z URL uloženého v dokumentu (značka <BASE>). URL bázového dokumentu je pak použito pro doplnění těch částí URL, které v relativním odkazu schází. Pokud začíná path lomítkem, jedná se o absolutní určení dokumentu jako v absolutním URL. Zpracování ".." a "." v path odpovídá zpracování přístupové cesty dle běžných konvencí systémů Unix.
Příklad:
Pokud je bázové URL http://a/b/c/d;p?q#f, pak relativní URL budou zpracovány takto:
g:h = g:h g = http://a/b/c/g ./g = http://a/b/c/g g/ = http://a/b/c/g/ /g = http://a/g //g = http://g ?y = http://a/b/c/d;p?y . = http://a/b/c/ ../g = http://a/b/g