URI

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 6. huhtikuuta 2020 tarkistetusta versiosta . tarkastukset vaativat 7 muokkausta .

URI ( /ˌjuː ɑːr ˈaɪ/ Englanti  Uniform Resource Identifier ) on yhtenäinen (yhtenäinen) resurssin tunniste. URI on merkkijono, joka identifioi abstraktin tai fyysisen resurssin. Aikaisemmin nimeltään Universal Resource Identifier  - yleinen resurssitunniste.

Perusteet

URI on merkkijono , jonka avulla voit tunnistaa minkä tahansa resurssin: asiakirjan , kuvan, tiedoston , palvelun , sähköpostilaatikon jne. Ensinnäkin puhumme Internet- ja World Wide Web -resursseista . URI tarjoaa yksinkertaisen ja laajennettavan tavan tunnistaa resurssit. URI:n laajennettavuus tarkoittaa, että URI:issa on jo useita tunnistusjärjestelmiä, ja lisää luodaan tulevaisuudessa.

URI:n, URL:n ja URN:n välinen suhde

URI on joko URL tai URN tai molemmat.

URL-osoite on URI, joka resurssin tunnistamisen lisäksi tarjoaa myös tietoa kyseisen resurssin sijainnista. Ja URN on URI, joka vain tunnistaa resurssin tietyssä nimiavaruudessa (ja siten tietyssä kontekstissa ), mutta ei osoita sen sijaintia. Esimerkiksi URN urn:ISBN:0-395-36341-1 on URI, joka osoittaa resurssiin (kirjaan) 0-395-36341-1 ISBN - nimiavaruudessa , mutta toisin kuin URL, URN ei osoita sijaintiin. resurssista: se ei kerro, mistä kaupasta sen voi ostaa tai mistä sivustosta ladata. Viime aikoina on kuitenkin ollut taipumus sanoa vain URI mistä tahansa tunnistemerkkijonosta ilman lisäselvityksiä. Joten ehkä termeistä URL ja URN tulee pian menneisyyttä.

Koska URI ei aina osoita, miten resurssi saadaan, toisin kuin URL, vaan vain tunnistaa sen, tämä mahdollistaa sellaisten RDF - resurssien (Resource Description Framework) kuvaamisen, joita ei voi saada Internetin kautta (esim. auto, kaupunki jne.).

Historia

Vuonna 1990 Genevessä , Sveitsissä , Euroopan ydintutkimusneuvoston ( fr. Conseil Européen pour la Recherche Nucléaire, CERN ) seinien sisällä brittiläinen tiedemies Tim Berners-Lee keksi URL -resurssin sijaintitunnisteen . Koska URL on URI:n eniten käytetty osajoukko, samaa vuotta 1990 pidetään URI:n syntymävuotena. Mutta tarkasti ottaen URI-konsepti dokumentoitiin vasta kesäkuussa 1994 RFC 1630 : ssa .  

URI:n uusi versio määriteltiin vuonna 1998 RFC 2396 :ssa, jolloin nimessä oleva sana Universal muutettiin Uniformiksi . Joulukuussa 1999 RFC 2732 teki pieniä muutoksia URI-määritykseen tehdäkseen siitä yhteensopivan IPv6 :n kanssa . Elokuussa 2002 RFC 3305 ilmoitti poistavansa URL-termin ja URI-ensisijaisuuden . URI:iden nykyistä rakennetta ja syntaksia hallitsee tammikuussa 2005 julkaistu RFC 3986 . Monet uusimmista semanttisen webin teknologioista (kuten RDF ) perustuvat URI-standardiin. Nyt johtava rooli URI:n kehittämisessä on World Wide Web Consortiumilla .

Haitat

URL-osoite oli perustavanlaatuinen innovaatio Internetissä , joten URI-periaatteet dokumentoitiin olevan täysin yhteensopivia URL-osoitteiden kanssa. Tästä tuli URI:n suuri haittapuoli, joka tuli perintönä URL-osoitteesta. URI:t, kuten URL-osoitteet, voivat käyttää vain rajoitettua määrää latinalaisia ​​merkkejä ja välimerkkejä (jopa pienempiä kuin ASCII ). Toisin sanoen, jos haluamme käyttää kyrillisiä merkkejä URI:ssa tai hieroglyfejä tai esimerkiksi tiettyjä ranskalaisia ​​merkkejä , meidän on koodattava URI samalla tavalla kuin Wikipedia koodaa URL -osoitteet Unicode-merkeillä . Esimerkiksi rivi, kuten:

https://ru.wikipedia.org/wiki/Кириллица

koodattu URL-osoitteeseen seuraavasti:

https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D0%B0

Koska kaikkien aakkosten kirjaimet joutuvat tällaiselle muunnokselle, lukuun ottamatta englanninkielistä latinalaista aakkosta , muiden kielten (jopa eurooppalaisten) sanojen URI:t menettävät kykynsä havaita ihmisten silmissä. Ja tämä on jyrkästi ristiriidassa kansainvälisyyden periaatteen kanssa, jota kaikki Internetin johtavat organisaatiot , mukaan lukien W3C ja ISOC , julistavat . IRI ( Internationalized Resource Identifier )  ​​-standardi on suunniteltu ratkaisemaan tämä ongelma - kansainväliset resurssitunnisteet, joissa Unicode-merkkejä voitaisiin käyttää ilman ongelmia ja jotka eivät loukkaa muiden kielten oikeuksia . Vaikka on vaikea sanoa etukäteen, pystyvätkö IRI :t koskaan korvaamaan URI:t näin laajassa käytössä.

Toinen mielenkiintoinen URI - muunnelma on OASIS - organisaation kehittämä XRI Extensible Resource Identifier . Tämän muodon tarkoituksena on luoda tunnisteita, jotka ovat täysin kontekstista riippumattomia, toisin sanoen riippumattomia protokollasta , toimialueesta , polusta, sovelluksesta ja alustasta  – täysin riippumattomia.  

Myös URI:n luoja Tim Berners-Lee sanoi, että URL-osoitteen taustalla oleva verkkotunnusjärjestelmä on huono päätös, koska se pakottaa resursseihin hierarkkisen arkkitehtuurin, joka ei sovellu hypertekstiverkkoon .

URI-rakenne

URI = [ schema ":" ] hierarkkinen - osa [ "?" pyyntö ] [ "#" fragmentti ]

Tässä merkinnässä:

järjestelmä resurssien käyttöjärjestelmä (osoittaa usein verkkoprotokollaa), esim. http , ftp , tiedosto , ldap , mailto, urn hierarkkinen osa sisältää yleensä hierarkkiseen muotoon järjestettyä dataa, joka yhdessä ei-hierarkkisen pyyntökomponentin tietojen kanssa tunnistaa resurssin URI-mallin puitteissa. Yleensä hier-osa sisältää polun resurssiin (ja mahdollisesti sen palvelimen osoitteen, jolla se sijaitsee ennen sitä) tai resurssin tunnisteen (URN:n tapauksessa). pyyntö tämä valinnainen URI-komponentti on kuvattu edellä. kappale (myös valinnainen)

RFC 3986 :

avulla voit epäsuorasti tunnistaa toissijaisen resurssin viittaamalla ensisijaiseen ja ilmoittamalla lisätietoja. Toissijainen tunnistettavissa oleva resurssi voi olla jokin osa tai alijoukko ensisijaisesta, jokin sen esitys tai muu sellaisen resurssin määrittelemä tai kuvaama resurssi.

Alkuperäinen teksti  (englanniksi)[ näytäpiilottaa] URI:n fragmentin tunnistekomponentti mahdollistaa epäsuorasti toissijaisen resurssin tunnistamisen viittaamalla ensisijaiseen resurssiin ja lisätunnistetietoihin. Tunnistettu toissijainen resurssi voi olla jokin osa tai osajoukko ensisijaisesta resurssista, jokin näkymä ensisijaisen resurssin esityksistä tai jokin muu resurssi, jonka nämä esitykset määrittelevät tai kuvaavat.

URI:n osaa, jossa ei ole resurssiviittausjärjestelmää, kutsutaan usein " URI-viittaukseksi " .  URI-viittausten käyttämisestä HTML- , XHTML- , XML- ja XSLT -muodoissa on ennakkotapauksia . Prosessia, jossa URI-viittaus muunnetaan URI:n absoluuttiseksi muotoksi, kutsutaan URI - resoluutioksi . 

Uusien skeemojen kehittämisprosessi on kuvattu RFC 2718 :ssa . Uudet järjestelmät on rekisteröitävä IANA :ssa ( Internet Assigned Numbers Authority ), rekisteröintimenettely on vahvistettu RFC 2717 :ssä . Molempia huomautuksia koskevia pyyntöjä ( RFC ) ollaan parhaillaan tarkistamassa.  

URI-rakenteen jäsentäminen

Ns. "jäsennys"-URI:lle ( englanniksi  parsing ), eli URI:n hajottamiseen sen komponenttiosiin ja niiden myöhempään tunnistamiseen, on kätevintä käyttää säännöllistä lausekejärjestelmää, joka on saatavilla lähes kaikissa nykyaikaisissa ohjelmointikielissä. RFC 3986 suosittelee seuraavan kaavan käyttöä URI:n jäsentämiseen :

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?( #(.*))? 12 3 4 5 6 7 8 9

Tämä malli sisältää 9 ryhmää, jotka on osoitettu yllä numeroilla (katso Säännölliset lausekkeet saadaksesi lisätietoja malleista ja ryhmistä ), jotka jäsentävät täydellisesti ja tarkimmin tyypillisen URI-rakenteen, jossa:

Jos käytät tätä mallia esimerkiksi tällaisen tyypillisen URI:n jäsentämiseen:

http://www.ics.uci.edu/pub/ietf/uri/#Related

niin yllä olevat 9 malliryhmää tuottavat vastaavasti seuraavat tulokset:

  1. http:
  2. http
  3. //www.ics.uci.edu
  4. www.ics.uci.edu
  5. /pub/ietf/uri/
  6. ei tulosta
  7. ei tulosta
  8. #Aiheeseen liittyvä
  9. liittyvät

Esimerkkejä URI:ista

Absoluuttiset URI:t

Suhteelliset URI:t

/relative/URI/with/absolute/path/to/resource.txt

//example.org/scheme-relative/URI/with/absolute/path/to/resource.txt

Suhteellinen/polku/resurssi.txt

../../../resurssi.txt

resurssi.txt

/resource.txt#frag01

#frag01

[tyhjä merkkijono] - vastaa jäsentimen suorittamaa tunnisteen jäsentämistä tuloksella [tyhjä merkkijono], eli linkki johtaa oletusskeeman oletusobjektiin

Katso myös

Linkit