Nederlands
  • uri
  • url
  • urn

Ontdekken van URI, URL en URN

Deze gids biedt een overzicht van URI, URL en URN, en legt hun verschillen en gebruikssituaties uit.

Darcy Ye
Darcy Ye
Developer

Bij het ontwikkelen van webapplicaties moeten we vaak verschillende webservices aanroepen. Bij het configureren van de communicatie en aansluiting van verschillende webservices komen we vaak de concepten URI, URL en URN tegen. Meestal vinden gebruikers het moeilijk om ze te onderscheiden, wat leidt tot gemengd of onjuist gebruik. In dit artikel zullen we voorbeelden geven en de verschillen tussen hen uitleggen om iedereen te helpen deze concepten beter te begrijpen en ze correct te interpreteren en te gebruiken bij het lezen van technische blogs, documentatie of communiceren met andere ingenieurs.

Wat is een URL?

Een URL (Uniform Resource Locator) biedt het webadres of de locatie van bronnen op het internet. Het wordt meestal gebruikt om de locatie van webpagina's, bestanden of services te specificeren. Een URL biedt een gestandaardiseerd formaat voor toegang tot bronnen op het web. Het is een essentieel onderdeel van web browsen, koppelen en internetcommunicatie.

Een URL bestaat uit verschillende delen die samen het adres van de bron en het protocol dat wordt gebruikt om toegang te krijgen definiëren. Laten we de URL hieronder analyseren als een voorbeeld en de functie van elk deel een voor een uitleggen.

  1. Schema: Dit specificeert het protocol of schema dat wordt gebruikt om toegang te krijgen tot bronnen, zoals HTTP (Hypertext Transfer Protocol), HTTPS (HTTP Secure), FTP (File Transfer Protocol), of anderen.

    Het schema in de URL is https.

  2. Host: Host specificeert de domeinnaam of het IP-adres van de server die de bronnen host.

    De host in de URL is example.logto.io .

  3. Poort: (Optioneel) Poort vertegenwoordigt een specifiek poortnummer op de host die toegang heeft tot de bron. Als er geen poort is gespecificeerd, wordt het standaard ingesteld op de standaardpoort voor het gegeven schema.

    De standaardpoort voor HTTP is 80, terwijl de standaardpoort voor HTTPS 443 is.

    De poort in de URL is 8080.

  4. Pad: (Optioneel) Pad geeft de specifieke locatie of directory op de server aan waar de bron zich bevindt, wat mappen en bestandsnamen kan omvatten.

    Het pad in de URL zou /blogs/index.html moeten zijn.

  5. Query Parameters: (Optioneel) Query parameters zijn extra parameters die naar een bron worden verzonden, meestal gebruikt in dynamische webapplicaties. Ze verschijnen na het pad en worden gescheiden door het ? symbool.

    De query parameters in de URL zijn params1=value1&param2=value2, wat vaak wordt weergegeven in de vorm van sleutel-waarde paren, waarbij paren worden gescheiden door het & symbool. In echte gebruiksscenario's is codering vaak nodig om tekens zoals spaties te vermijden.

  6. Fragment Identifier: (Optioneel) Het kan ook een anker worden genoemd, gebruikt om een specifieke positie in de bron te lokaliseren.

    Het anker in de URL is #introduction.

Daarnaast worden bestandservices of veel "Contacteer ons" knoppen op webpagina's gekoppeld aan URL's, zoals:

  • ftp://documents.logto.io/files/legal/soc_ii.pdf
  • mailto:contact@logto.io?subject=Enterprise%20quota%20request

Wat is een URI?

URI staat voor "Uniform Resource Identifier". Het is een tekenreeks die een specifieke bron identificeert, zoals een webpagina, bestand of service. URI biedt een manier om bronnen uniek te identificeren en te lokaliseren met behulp van een gestandaardiseerd formaat.

Een URI bestaat voornamelijk uit twee componenten:

  1. Schema: Geeft het protocol of schema aan dat wordt gebruikt om toegang te krijgen tot de bron.
  2. Resource Identifier: Identificeert de specifieke bron die wordt benaderd of gerealiseerd. Het formaat van de bron identificatie is afhankelijk van het gebruikte schema.

Vanuit een grammaticaal perspectief volgen URI's meestal hetzelfde formaat als URL's, zoals gespecificeerd in RFC 3986.

Hoewel dit URI-formaat vergelijkbaar is met dat van URL's, garandeert het geen toegang tot enige bron op het Web. Het gebruik van dit formaat kan naamconflicten in naamruimten verminderen.

In de bovenstaande sectie introduceerden we URL's, die niet alleen een bron identificeren, maar ook helpen om die bron te lokaliseren. Dus, in feite, zijn URL's een echte deelverzameling van URI's.

Wat is een URN?

URN is misschien niet zo gebruikelijk als URL en URI. Het staat voor "Uniform Resource Name", en het doel ervan is om bronnen op een blijvende manier te identificeren, zelfs als zulke bronnen niet langer bestaan.

In tegenstelling tot een URL, biedt een URN geen informatie over hoe de bron te lokaliseren; het identificeert het alleen, net zoals een pure URI. Specifiek is een URN een type URI met het schema "urn" en heeft de volgende structuur, zoals beschreven in RFC 2141:

<URN>:<NID>:<NSS>

  1. URN: Meestal urn.
  2. Namespace Identifier (NID): Vertegenwoordigt een unieke naamruimte of identificatiesysteem dat de URN definieert en beheert. Het biedt context en zorgt voor de uniekheid van de identificatie. Voorbeelden van naamruimten zijn ISBN (Internationaal Standaard Boek Nummer), enz.
  3. Namespace Specific String (NSS): Het is een tekenreeks die een bron uniek identificeert binnen de gespecificeerde naamruimte. De identificatie zelf draagt geen informatie over de locatie of toegangs manier van de bron over.

Bijvoorbeeld, een heel beroemd boek dat computersystemen introduceert, CSAPP heeft zijn ISBN nummer weergegeven als URN urn:isbn:9780134092669.

URN's worden vaak gebruikt in verschillende standaardprotocollen, zoals de assertion in het SAML-protocol, dat overeenkomt met de URN urn:oasis:names:tc:SAML:2.0:assertion.

In software engineering kunnen we ook URN's definiëren voor specifieke doeleinden in onze eigen systemen volgens de URN-namingsregels. Bijvoorbeeld, in Logto, om Organisatie in te schakelen, moet je de urn:logto:scope:organizations scope toevoegen in de configuratie bij het gebruik van de SDK. Elke Organisatie heeft ook zijn eigen speciale URN urn:logto:organization:{orgId}.

Conclusie

De relatie tussen URI, URL en URN kan worden geïllustreerd met behulp van het volgende Venn-diagram:

Relaties

URI, URL en URN kunnen allemaal worden gebruikt om verschillende bronnen te identificeren, maar alleen URL kan de positie van de bron nauwkeurig aangeven.

URI en URL kunnen verschillende schema's ondersteunen, zoals HTTP, HTTPS, FTP, maar URN kan worden beschouwd als alleen het urn schema te ondersteunen.

Alle URL's of URN's zijn URI's, maar niet alle URI's zijn URL's of URN's.