Ga naar hoofdinhoud

URI's en URL's

Elke keer dat je een webadres intypt of een link aanklikt, gebruik je een URL (Uniform Resource Locator). Een URL is een specifiek type URI (Uniform Resource Identifier), een gestandaardiseerde notatie om een bron op het web eenduidig te benoemen én te localiseren.

Anatomie van een URL

scheme://userinfo@host:poort/pad?query#fragment

Voorbeeld:

https://robin:geheim@api.example.com:8443/v1/users?role=admin&page=2#resultaten
OnderdeelWaarde in voorbeeldUitleg
schemehttpsHet protocol: http of https (of bv. ftp, mailto, …)
userinforobin:geheimOptionele gebruikersnaam en wachtwoord (zelden gebruikt, onveilig)
hostapi.example.comDomeinnaam of IP-adres van de server
poort8443Optioneel; standaard: 80 voor http, 443 voor https
pad/v1/usersDe specifieke bron op de server, gescheiden door /
queryrole=admin&page=2Optionele parameters in sleutel=waarde-formaat, na ?; meerdere met &
fragmentresultatenAnkerpunt op de pagina zelf (verwerkt door de browser, niet naar de server gestuurd)
Poort weglaten

Als de poort overeenkomt met de standaard van het scheme, mag je hem weglaten. http://example.com:80/ en http://example.com/ zijn identiek.

Scheme

Het scheme bepaalt welk protocol (en impliciet welke poort) gebruikt wordt:

SchemeStandaardpoortGebruik
http80Onversleuteld web
https443Versleuteld web (TLS)
ftp21Bestandsoverdracht
ws / wss80 / 443WebSockets (real-time)

Pad

Het pad (/v1/users) identificeert de bron op de server. Het is door de server te interpreteren: het kan overeenkomen met een bestand op schijf (bv. /index.html) of dynamisch afgehandeld worden door een applicatie (bv. /api/products/42). Hoe paden in moderne API's een vaste, gestandaardiseerde betekenis krijgen, zie je in JSON, REST & clientverzoeken.

Query-parameters

Query-parameters (?sleutel=waarde&…) worden na het pad toegevoegd en dienen om extra informatie mee te geven: filters, zoektermen, paginanummers, sorteerorders. Ze zijn optioneel en worden altijd naar de server gestuurd als onderdeel van de request-URL.

https://api.example.com/producten?categorie=laptops&prijs_max=1000&pagina=2

Fragment

Het fragment (#resultaten) verwijst naar een ankerpunt binnen de pagina. Het wordt nooit door de browser naar de server gestuurd, het is uitsluitend voor de client bedoeld om naar het juiste gedeelte van het document te scrollen.

URI vs. URL

Een URI is een identifier (benoemt een bron). Een URL is een locator (geeft ook aan waar de bron te vinden is en hoe ze te bereiken is, het scheme). In de webcontext zijn URI en URL grotendeels uitwisselbaar, maar technisch is elke URL ook een URI, terwijl het omgekeerde niet altijd geldt.

Onthoud
  • Een URL bestaat uit: scheme · host · poort · pad · query · fragment.
  • Het fragment wordt door de browser verwerkt en niet naar de server gestuurd.
  • Query-parameters volgen na ?; meerdere parameters zijn gescheiden door &.
  • Standaardpoorten (80 voor http, 443 voor https) mag je weglaten.