Kuo skiriasi URL ir URI identifikatoriai?
Autorius: Domeny.ForSale redakcija Paskelbta
Trumpai: URI yra ištekliaus identifikatorius, o URL – toks identifikatorius, kuris taip pat nurodo ištekliaus vietą ir prieigos prie jo būdą. Pagal klasikinį skirstymą kiekvienas URL yra URI, bet ne kiekvienas URI yra URL. Taigi svetainės adresą galima teisingai vadinti tiek URL, tiek URI, tačiau kasdieniame pokalbyje terminas „URL“ paprastai bus suprantamesnis.
Ką reiškia URI?
URI yra Uniform Resource Identifier, arba vienodojo ištekliaus identifikatoriaus, santrumpa. Išteklius gali būti tinklalapis, nuotrauka, dokumentas, per API pateikiamas elementas, taip pat objektas, kurio negalima tiesiog atsisiųsti iš interneto.
Svarbiausia URI funkcija – identifikuoti, tai yra nurodyti, apie kokį išteklių kalbama. Pats identifikatorius nebūtinai nurodo, kur tas išteklius yra ar kaip jį pasiekti.
Pavyzdys – urn:isbn:9780131103627. Tai leidinio identifikatorius, kuriame naudojamas ISBN numeris. Jis nenurodo konkretaus knygyno, bibliotekos ar atsisiunčiamo failo. Jis identifikuoja leidinį, bet nepateikia jo internetinio adreso.
Taigi URI yra platesnė sąvoka nei tinklalapio adresas. Tai identifikatorių kategorija, kuriai priklauso ir gerai pažįstami adresai, prasidedantys https:.
Ką reiškia URL?
URL yra Uniform Resource Locator, arba vienodojo ištekliaus adreso, santrumpa. Jis nurodo ištekliaus vietą ir prieigos prie jo mechanizmą, pavyzdžiui, naudojant HTTPS.
URL pavyzdys – https://example.com/poradnik. Jame pateikta informacija, kurios naršyklei reikia, kad galėtų pradėti bandyti pasiekti nurodytą tinklalapį:
https– schema, šiuo atveju nurodanti naudoti HTTPS protokolą;example.com– pagrindinio kompiuterio vardas, šiuo atveju – domeno vardas;/poradnik– kelias, nurodantis išteklių tame pagrindiniame kompiuteryje.
Adrese taip pat gali būti prievadas, užklausos parametrai ir fragmentas. Pavyzdyje https://example.com/poradnik?jezyk=pl#wprowadzenie dalis kalba=pl yra užklausos parametras, o ivadas identifikuoja dokumento fragmentą. Fragmentas nesiunčiamas serveriui kaip HTTP užklausos dalis – jį interpretuoja naudotojo pusėje veikianti programinė įranga.
URL negarantuoja, kad išteklius egzistuoja ar yra pasiekiamas. Adresas gali nukreipti į pašalintą tinklalapį, reikalauti prisijungti arba nurodyti neatsakantį serverį. Vis tiek tai yra URL.
Koks tiksliai yra skirtumas?
Lengviausia jį įsiminti pasitelkus du klausimus: URI atsako į klausimą „ką identifikuojame?“, o URL papildomai leidžia nustatyti, „kur ir kokiu būdu bandyti pasiekti išteklių?“. Tai nėra dvi nesusijusios kategorijos: URL yra atskiras URI atvejis.
| Pavyzdys | Tipas | Ką nurodo? |
|---|---|---|
https://example.com/zdjecie.jpg | URL ir URI | Nurodo nuotraukos vietą ir prieigos būdą naudojant HTTPS. |
urn:isbn:9780131103627 | URN tipo URI | Identifikuoja leidinį, bet nenurodo jo vietos tinkle. |
URN, arba Uniform Resource Name, yra identifikatorius, pagrįstas vardu tam tikroje vardų srityje. Antrajame pavyzdyje tokia sritis yra ISBN. Norint suprasti tinklalapių adresus, nebūtina naudoti URN, tačiau šis pavyzdys padeda suprasti, kodėl URI nėra tiesiog kitas URL pavadinimas.
Naudingas palyginimas – knyga ir jos vieta lentynoje. ISBN numeris skirtas konkrečiam leidimui identifikuoti, o informacija apie biblioteką, stelažą ir lentyną padeda jį rasti. Tai tik analogija: internetinis URL gali vienu metu ir identifikuoti išteklių, ir nurodyti jo vietą.
Kurį terminą vartoti praktiškai?
Jei prašote tinklalapio adreso, nuorodos į produktą ar failo adreso, vartokite terminą URL. Šiame kontekste jis tikslus ir nereikia aiškinti platesnės identifikatorių kategorijos.
Techninėje dokumentacijoje galite susidurti su terminu URI net tada, kai pavyzdinė reikšmė atrodo kaip įprastas HTTPS adresas. Tai nebūtinai klaida: autorius vartoja platesnę sąvoką arba konkrečiame standarte priimtą pavadinimą. Jei API laukas vadinasi redirect_uri, išsaugokite tikslų jo pavadinimą – nekeiskite jo į redirect_url vien todėl, kad perduodate tinklalapio adresą.
Taip pat verta atskirti visą adresą nuo jo dalių. Vien example.com yra domeno vardas, o /poradnik – santykinė nuoroda, kurios reikšmė priklauso nuo bazinio adreso. Nė vienas iš šių užrašų atskirai nesuteikia tiek informacijos, kiek visas URL adresas https://example.com/poradnik.
Kodėl šie terminai kartais vartojami kaip sinonimai?
Klasikinis URI identifikatorių skirstymas, apimantis URL ir URN, gerai paaiškina esminį skirtumą. Vis dėlto standartų terminija nėra visiškai vienoda: naršyklių aplinkoje taikomas WHATWG URL standartas vartoja URL sąvoką ir apibrėžia savas adresų apdorojimo taisykles.
Todėl programuojant svarbiau ne pats pavadinimas, o konkrečios bibliotekos ar API reikalavimai: ar priimamas visas adresas, ar palaikomos santykinės nuorodos ir kokios schemos leidžiamos. Pildydami lauką „svetainės adresas“, pateikite visą URL adresą; įgyvendindami integraciją, patikrinkite jos dokumentacijoje nurodytą formatą.
