**URI** *(Uniform Resource Identifier)* on merkkijono, jolla kerrotaan tietyn tiedon paikka (**URL**) tai yksikäsitteinen nimi (**URN**). Erityisesti URIn erikoistapausta **URL:ää** *(Uniform Resource Locator)* käytetään osoittamaan WWW-sivuja.

URI, URL ja URN
---------------

URI sisältää tietoverkossa sijaitsevan tiedon tunnisteen: se voi sisältää sijainnin, nimen tai molemmat. URL sisältää tiedon, jolla tieto voidaan hakea (tiedon **sijainti**).

Kaikki URL-tiedot ovat URI-tietoja, mutta kaikki URI-tiedot eivät ole URL-tietoja. URI voi sisältää myös skeemoja, joiden avulla voidaan vain yksikäsitteisesti nimetä tieto: URN ei sisällä tiedon sijaintia.

Yleinen URIn rakenne on RFC 3986:n mukaan seuraava:

```
URI = scheme:[//authority]path[?query][#fragment]

```

Vähintään *skeema* (*scheme*) ja *polku* (*path*) ovat sen pakolliset osat (URN).

Yleinen URIn rakennekaavio.
**URL** (*Uniform Resource Locator*) sisältää tiedon hakemiseen tarvittavan tiedon kuten protokollan ja palvelimen:

```
https://fi.wikipedia.org/w/wiki.phtml?title=URI#URI_ja_URL

```

**URN** (*Uniform Resource Name*) on URI-skeema, jonka avulla ei voi löytää tietoa, vaan se yksikäsitteisesti nimeää jonkin tiedon (ei sisällä protokollaa tai palvelintietoa). 

Esimerkiksi seuraava URN-skeema nimeää kirjan ISBN-numeron avulla:

```
urn:ISBN:952-9842-34-1

```

URL-skeemoja
------------

* http – HTTP-protokolla
* https – HTTP-protokolla, joka on suojattu TLS-protokollalla
* ftp – tiedostonsiirto FTP-protokollalla
* mailto – sähköpostiosoite
* ldap – tiedon haku LDAP-hakemistosta
* file – tiedostot, jotka näkyvät paikallisen tietokoneen tiedostoavaruudessa
* news – Usenet-uutisryhmät
* gopher – gopher-palvelimessa olevat tiedot (melkein kadonneet)
* telnet – telnet-pääteyhteys
* ssh – SSH-yhteys
* git – Git-yhteys
* irc – IRC-yhteys

HTTP-skeema
-----------

Tavallisin URI-skeema on *http*. Sen tarkempi rakenne on seuraavanlainen:

```
http://omistaja/polku?toiminto

```

Omistaja on tavallisesti DNS-nimi, mutta se voi olla myös IP-osoite. Polku on vinoviivoilla (/) tarkennettu tiedon sijaintipaikka omistajan sisällä. Useimmiten se kuvaa hakemistorakennetta, ja toiminto voi olla esimerkiksi lisätieto halusta muuttaa tietoa. Toiminto koostuu usein et-merkein (&) erotelluista muuttuja-arvopareista, joiden osat on eroteltu yhtäläisyysmerkillä (=).

```
http://www.example.com/tiedot.php?nimi=Matti+Meikalainen&osoite=Aleksanterinkatu+50A

```

Lopussa voi olla vielä ristikkomerkillä (#) erotettuna tiedon osan kuvaava tunniste. Tätä tietoa ei kuitenkaan lähetetä verkon ylitse, vaan käyttäjälle etsitään tiedosta kyseinen kohta paikallisesti.

Osana omistajaa voidaan myös kertoa HTTP-palvelimen käyttämän TCP-portin numero kaksoispisteen (:) jälkeen. Oletuksena porttinumero on 80, mutta se voi olla esimerkiksi 8080, jos samassa tietokoneessa halutaan käyttää useita palvelimia yhtä aikaa.

```
http://www.example.com:8080/

```

Tämä saattaa kuitenkin olla mahdotonta käytettäessä IPv6-osoitteita, jotka on jaettu kaksoispisteillä. Tällöin IP on ympäröitävä hakasulkein.

```
http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7334]:8080/

```

XML-nimiavaruudet
-----------------

XML-nimiavaruudet kuvataan URI-tyyppisesti merkkijonolla, joka yksikäsitteisesti määrittelee käytettävän nimiavaruuden. Se on tyypiltään kuten URL:

```
http://omistaja/tunnus

```

Se ei kuitenkaan välttämättä ole käyttökelpoinen WWW-sivuna. (On toki suositeltavaa, että URL:n takaa löytyy jonkinlainen kuvaus käytetystä nimiavaruudesta.) Koska tämä tunnus muistuttaa HTTP-skeeman mukaista URL:ää, mutta ei ole käytettävissä WWW-sivuna, se ei itse asiassa ole määritelmän mukainen URI.

Standardointi
-------------

URI määritellään seuraavissa RFC-dokumenteissa:

* RFC 2396 – URI; alkuperäinen, vanhentunut määrittely
* RFC 3986 – URI; uusin, voimassa oleva määrittely
* RFC 7595 – menettely uuden URI-skeeman rekisteröimiseksi

Katso myös
----------

* Pysyvä tunniste
* Magnet-linkki

Lähteet
-------

1. ↑  URI (Uniform Resource Identifier) *WhatIs.com*. Viitattu 19.7.2019. (englanniksi)
2. 1 2 3 4  Comparing URI vs URL *keycdn.com*. Viitattu 19.7.2019. (englanniksi)

Aiheesta muualla
----------------

CommonsCommons
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta **URI**.
* Uniform Resource Identifier (URI) Schemes (englanniksi)
* URIs, URLs, and URNs: Clarifications and Recommendations 1.0 (englanniksi)