Ühtne ressursiidentifikaator

**Ühtne ressursiidentifikaator** (inglise keeles *Uniform Resource Identifier, URI*) on sõne, mida kasutatakse infoallika üheseks määramiseks veebis.

## URL ja URN
Ühtne ressursinimi (inglise keeles *Uniform Resource Name, URN*) on ühtne ressursi-indikaator, mis identifitseerib ressurssi ainult nime järgi. URN-i võib kasutada ressursist rääkimiseks ilma selle asukoha ja juurdepääsu mehhanismi mainimata.

Internetiaadress (inglise keeles *Uniform Resource Locator*, *URL*) on ühtne ressursi-indikaator, mis identifitseerib ressurssi nii asukoha kui ka peamise juurdepääsu mehhanismi abil.

## Struktuur
Ühtsa ressursi-indikaatori struktuur on järgnev:

`'''skeem''':[//['''kasutaja'''[:'''parool''']@]'''host'''[:'''port''']][/'''tee'''][?'''päring'''][#'''ankur''']`
* **[[Protokoll (andmeside)|Skeem]]** on tähemärkide jada, mis algab tähega ning mis koosneb tähtedest, numbritest, plussidest (`+`), miinustest (`-`) ja punktidest (`.`). Kuigi skeemid on tõstutundetud, kombeks on neid kirjutada väiketähtedega. Sellele järgneb koolon (`:`). Tuntud skeemid on näiteks `[[Hüperteksti edastusprotokoll|http(s)]]`, `[[Failiedastusprotokoll|ftp]]`, `mailto`, `file`, `data` ja `[[IRC|irc]]`.
* Kaks kaldkriipsu (`//`), mida mõned skeemid nõuavad, mõned mitte. Kui volituse komponenti (kirjeldatud allpool) pole, siis tee komponent ei tohi alata kahe kaldkriipsuga.
* **Volituse osa**, mis koosneb:
** valikulisest autentimise osast, mis omakorda koosneb kasutajanimest ja paroolist eraldatuna kooloniga (`:`),
** **[[host]]ist**, mis on kas registreeritud nimi (sealhulgas hostinimi) või IP-aadress. IPv4 aadress peab olema kujul, kus arvud on eraldatud punktidega, IPv6 peab olema nurksulgude (`[` `]`) vahel,
** valikulisest pordi numbrist, mis on eraldatud hostist kooloniga (`:`).
* **Tee**, mis on tavaliselt hierarhiline struktuur, mille segmendid on eraldatud kaldkriipsudega (`/`). See struktuur võib olla sarnane failisüsteemi teega, aga sellest ei saa järeldada, et nad on omavahel seotud. Tee on alati defineeritud, kuigi see võib olla tühi (0 pikkusega).
* Valikuline **päring**, mis on eraldatud eelnevast osast küsimärgiga (`?`). Selle süntaks pole hästi defineeritud, aga tavaliselt koosneb päring võti-väärtus paaridest, kus võti ja väärtus on eraldatud võrdusmärgiga `=` ning paarid on omakorda eraldatud kas ampersandiga (`&`) või semikooloniga (`;`).
* Valikuline **ankur**, mis on eraldatud eelnevast osast "trelli" ehk numbri sümboliga (`#`), mille ülesandeks on sekundaarse ressursi (näiteks pealkirja) poole suunamine. Kui ressurss on näiteks HTML dokument, siis ankur on tihti mõne elemendi `id` atribuut.
Eelnimetatud osade lubatud tähemärkideks on tänapäeva inglise tähestiku väike- ja suurtähtedele vastavad ASCII tähemärgid, araabia numbrid, sidekriips (`-`), punkt (`.`), allkriips (`_`) ja tilde (`~`). Ülejäänud sümbolid peavad olema kodeeritud protsendiga (`%`).

ASCII sümbolid `: / ? # [ ] @` on reserveeritud piiritlejatena kasutuseks. Selleks, et neid väljaspool otstarvet kasutada, peavad nad olema protsent-kodeeritud. Näiteks sümbolile `?` vastab `%3F`. Tähemärgid `! $ & ' ( ) * + , ; =` võivad olla kodeerimata kasutajanime, parooli, hosti ja tee osades. Sümbolid `:` ja `@` võivad olla kodeerimata tee, päringu ja ankru osades ning tähemärgid `?` ja `/` võivad olla kodeerimata päringu ja ankru sektsioonides.

## Näited
### Absoluutsed URI-d
* 
* 
* 

### Suhtelised URI-d
* ressurss.txt
* /../../../ressurss.txt
* /relatiive/tee/failini/ressurss.txt
* #ankur2

## Viited