Wat is het verschil tussen URL en URI?

Auteur: Gepubliceerd

Kort gezegd: een URI identificeert een bron. Een URL is een identificator die ook aangeeft waar de bron zich bevindt en hoe je er toegang toe krijgt. Volgens de klassieke indeling is elke URL een URI, maar niet elke URI een URL. Je kunt een webadres dus zowel een URL als een URI noemen. In een alledaags gesprek is de term ‘URL’ meestal duidelijker.

Wat betekent URI?

URI staat voor Uniform Resource Identifier, oftewel een uniforme identificator voor een bron. Zo’n bron kan een webpagina, foto, document of een via een API beschikbaar gesteld onderdeel zijn, maar ook een object dat je niet zomaar van internet kunt downloaden.

De belangrijkste functie van een URI is identificeren: aangeven om welke bron het gaat. De identificator hoeft op zichzelf niet te vertellen waar die bron zich bevindt of hoe je er toegang toe krijgt.

Een voorbeeld is urn:isbn:9780131103627. Deze identificator gebruikt een ISBN-nummer om een publicatie te identificeren. Hij verwijst niet naar een specifieke boekhandel, bibliotheek of een bestand dat je kunt downloaden. Hij identificeert de publicatie, maar geeft geen internetadres ervan.

URI is dus een ruimer begrip dan een webadres. Het is een categorie identificatoren waartoe ook de vertrouwde adressen behoren die beginnen met https:.

Wat betekent URL?

URL staat voor Uniform Resource Locator, oftewel een uniforme plaatsaanduiding voor een bron. Deze geeft aan waar de bron zich bevindt en via welk mechanisme je er toegang toe krijgt, bijvoorbeeld via HTTPS.

Een voorbeeld van een URL is https://example.com/poradnik. Dit adres bevat de informatie die een browser nodig heeft om te proberen de opgegeven pagina te bereiken:

Een adres kan ook een poort, queryparameters en een fragment bevatten. In het voorbeeld https://example.com/poradnik?jezyk=pl#wprowadzenie is jezyk=pl een queryparameter en identificeert wprowadzenie een fragment van het document. Het fragment wordt niet als onderdeel van het HTTP-verzoek naar de server gestuurd; de software aan de kant van de gebruiker verwerkt het.

Een URL garandeert niet dat de bron bestaat of toegankelijk is. Het adres kan naar een verwijderde pagina leiden, vereisen dat je inlogt of verwijzen naar een server die niet reageert. Het blijft dan nog steeds een URL.

Wat is precies het verschil?

Je onthoudt het verschil het makkelijkst aan de hand van twee vragen: een URI geeft antwoord op ‘wat identificeren we?’, terwijl een URL ook aangeeft ‘waar en hoe kunnen we toegang proberen te krijgen?’. Het zijn geen twee losstaande categorieën: een URL is een specifiek type URI.

VoorbeeldTypeWelke informatie geeft het?
https://example.com/zdjecie.jpgURL en URIGeeft de locatie van de foto aan en de manier om deze via HTTPS te bereiken.
urn:isbn:9780131103627URI van het type URNIdentificeert een publicatie, maar geeft niet aan waar deze op internet te vinden is.

Een URN, oftewel Uniform Resource Name, is een identificator op basis van een naam binnen een bepaalde naamruimte. In het tweede voorbeeld is ISBN die naamruimte. Je hoeft URN niet te gebruiken om webadressen te begrijpen, maar het begrip helpt wel te verduidelijken waarom URI niet gewoon een ander woord is voor URL.

Een bruikbare vergelijking is een boek en de plek waar het in de kast staat. Het ISBN-nummer identificeert een bepaalde uitgave, terwijl informatie over de bibliotheek, de kast en de plank helpt om die te vinden. Het blijft een vergelijking: een URL op internet kan een bron tegelijk identificeren en de locatie ervan aangeven.

Welke term gebruik je in de praktijk?

Vraag je om een webadres, een link naar een product of het adres van een bestand, gebruik dan URL. Die term is in deze context nauwkeurig en je hoeft de ruimere categorie identificatoren niet uit te leggen.

In technische documentatie kun je de term URI tegenkomen, zelfs wanneer de voorbeeldwaarde eruitziet als een gewoon HTTPS-adres. Dat hoeft geen fout te zijn: de auteur gebruikt het ruimere begrip of de benaming die in de betreffende standaard gangbaar is. Als een veld in een API redirect_uri heet, behoud die naam dan precies. Verander hem niet in redirect_url alleen omdat je een webadres doorgeeft.

Het is ook belangrijk om onderscheid te maken tussen een volledig adres en de onderdelen ervan. Alleen example.com is een domeinnaam, en /poradnik is een relatieve verwijzing waarvan de betekenis afhangt van het basisadres. Geen van beide geeft op zichzelf dezelfde informatie als de volledige URL https://example.com/poradnik.

Waarom worden deze termen soms door elkaar gebruikt?

De klassieke indeling van URI, met daarbinnen onder meer URL en URN, maakt het basisverschil goed duidelijk. De terminologie in standaarden is echter niet helemaal uniform: de WHATWG URL-standaard, die in browsers wordt gebruikt, hanteert het begrip URL en definieert eigen regels voor het verwerken van adressen.

Daarom zijn bij het programmeren de eisen van de specifieke bibliotheek of API belangrijker dan het etiket: accepteert deze een volledig adres, ondersteunt deze relatieve verwijzingen en welke schema’s zijn toegestaan? Vul je een veld ‘webadres’ in, geef dan een volledige URL op. Implementeer je een integratie, controleer dan in de bijbehorende documentatie welk formaat vereist is.

Zie ook: Wat is FreeBSD?

Lees ook

Lees hoe PHP-FPM PHP-verzoeken verwerkt, verschilt van een webserver en hoe je processen afstemt op verkeer en hostingcapaciteit.
Ontdek hoe BIND als open DNS-serversoftware domeinen beheert, welke rollen het vervult en wanneer zelf beheren zinvol is.
Lees wat het Poolse REGON-register en -nummer betekenen, hoe ze verschillen van NIP en KRS en hoe je bedrijfsgegevens controleert.