Je klikt op een link en ziet iets als https://voorbeeld.nl/zoek?q=hoe%20werkt%20dit%3F in de adresbalk. Wat zijn al die procentsymbolen? En waarom staat er %20 in plaats van een spatie?
Dat is URL-codering — en als je het eenmaal begrijpt, zul je het overal herkennen.
Wat is URL-codering?
Een URL (webadres) mag alleen bepaalde tekens bevatten. Letters (a-z, A-Z), cijfers (0-9) en een paar speciale tekens zoals -, _, . en ~ zijn toegestaan.
Maar spaties, vraagtekens, ampersands en speciale tekens zoals é of ñ zijn niet zomaar toegestaan in een URL. Als je die toch wilt gebruiken, moeten ze worden "gecodeerd".
URL-codering werkt zo: het speciale teken wordt vervangen door een procentteken gevolgd door de hexadecimale waarde van dat teken.
Een spatie heeft hexadecimale waarde 20, dus een spatie wordt %20.
Een vraagteken (?) heeft waarde 3F, maar dat teken heeft ook een speciale betekenis in URLs (het start een querystring), dus in een waarde moet het als %3F worden geschreven.
Veelvoorkomende tekens en hun codes
| Teken | Code |
|---|---|
| Spatie | %20 |
! | %21 |
" | %22 |
# | %23 |
& | %26 |
' | %27 |
( | %28 |
) | %29 |
+ | %2B |
/ | %2F |
: | %3A |
= | %3D |
? | %3F |
@ | %40 |
Wil je een tekst snel omzetten? Gebruik onze URL encoder / decoder.
Wanneer gebruik je URL-codering?
Zoekterm in een URL
Als je zoekt op Google naar "hoe werkt url codering", wordt dat in de URL:
https://www.google.com/search?q=hoe+werkt+url+codering
Google gebruikt hier + voor spaties (een andere gangbare conventie), maar veel andere systemen gebruiken %20.
Speciale tekens in formulierdata
Wanneer je een formulier invult en op verzenden klikt, coderen browsers de ingevoerde tekst automatisch. Zo worden speciale tekens veilig meegegeven in de URL.
API-aanroepen
Als je via een API data opvraagt met een zoekterm die speciale tekens bevat, moet je die tekens coderen. Anders interpreteert de server de URL verkeerd.
Niet gecodeerd: https://api.voorbeeld.nl/zoek?naam=Jan & Petra
Gecodeerd: https://api.voorbeeld.nl/zoek?naam=Jan%20%26%20Petra
Nederlandse tekens
De letter é (zoals in "café") wordt %C3%A9 in URL-codering. Dat zijn twee bytes, omdat é in UTF-8 met twee bytes wordt voorgesteld.
Decoderen: van codes terug naar tekst
Soms ontvang je een URL met veel procent-codes en wil je weten wat het eigenlijk zegt. Onze URL decoder zet de codes automatisch terug naar leesbare tekst.
Voorbeeld:
Goed%20gedaan%21%20Je%20hebt%20het%20begrepen.
wordt:
Goed gedaan! Je hebt het begrepen.
Het verschil met HTML-entiteiten
HTML-entiteiten (zoals & voor & of < voor <) zijn iets anders dan URL-codering. HTML-entiteiten gebruik je in HTML-documenten, URL-codering gebruik je in webadressen.
Wil je HTML-entiteiten coderen of decoderen? Dat kan met onze HTML entities encoder.
Conclusie
URL-codering is een technisch saaie maar essentiële onderdeel van hoe het web werkt. Elke keer dat je een zoekopdracht doet, een formulier invult of een link deelt met speciale tekens, is URL-codering betrokken.
Nu je weet wat %20 betekent, zal je het nooit meer vergeten.