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
| Onderdeel | Waarde in voorbeeld | Uitleg |
|---|---|---|
| scheme | https | Het protocol: http of https (of bv. ftp, mailto, …) |
| userinfo | robin:geheim | Optionele gebruikersnaam en wachtwoord (zelden gebruikt, onveilig) |
| host | api.example.com | Domeinnaam of IP-adres van de server |
| poort | 8443 | Optioneel; standaard: 80 voor http, 443 voor https |
| pad | /v1/users | De specifieke bron op de server, gescheiden door / |
| query | role=admin&page=2 | Optionele parameters in sleutel=waarde-formaat, na ?; meerdere met & |
| fragment | resultaten | Ankerpunt op de pagina zelf (verwerkt door de browser, niet naar de server gestuurd) |
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:
| Scheme | Standaardpoort | Gebruik |
|---|---|---|
http | 80 | Onversleuteld web |
https | 443 | Versleuteld web (TLS) |
ftp | 21 | Bestandsoverdracht |
ws / wss | 80 / 443 | WebSockets (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.
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.
- 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 (
80voor http,443voor https) mag je weglaten.