🌐 NL

🔗 URL-coder/decoder

Codeer of decodeer URL's veilig. Verwerk speciale tekens, internationale tekens en spaties in queryparameters om geldige URL's te maken.

GIDS

Meer lezen

01

1. Wat is URL-codering?

URL-codering (percent-encoding) is het proces waarbij onveilige tekens in URL's worden omgezet naar % gevolgd door hexadecimale codes. Omdat URL's alleen ASCII-tekens toestaan, moeten Koreaanse tekens, speciale tekens en spaties worden gecodeerd. Bijvoorbeeld: spatie wordt %20, @ wordt %40 en het teken é wordt gecodeerd als %C3%A9. Volgens de RFC 3986-standaard moeten tekens anders dan A-Z, a-z, 0-9, -, _, ., ~ worden gecodeerd. Verschillende delen van URL's, zoals queryparameters, paden en hashes, hebben verschillende coderingsregels.

02

2. Waarom speciale tekens coderen?

Speciale tekens in URL's hebben een speciale betekenis, dus ze moeten worden gecodeerd om als waarde te gebruiken. & is bijvoorbeeld een parameterscheidingsteken, dus om & in een waarde op te nemen, codeer je het als %26. = is een scheidingsteken voor sleutel en waarde, ? begint query's en # begint fragmenten. Spaties worden gecodeerd als + of %20. Zonder codering van Koreaanse of andere speciale tekens kunnen servers ze mogelijk niet correct verwerken of 404-fouten teruggeven. Codeer altijd zoektermen of gebruikersinvoer voordat je ze in URL's opneemt.

03

3. Codering van queryparameters

Queryparameters zijn het deel van URL's dat het vaakst wordt gecodeerd. Voorbeeld: https://example.com/search?q=search&category=IT. Zowel "search" als "IT" moeten worden gecodeerd. Met JavaScript encodeert encodeURIComponent() =, &, ? en is daardoor veilig voor waarden van queryparameters. encodeURI() is bedoeld voor het coderen van complete URL's, maar codeert =, &, ? niet en is daarom ongeschikt voor querywaarden. Codeer sleutels en waarden altijd afzonderlijk met encodeURIComponent().

04

4. encodeURI vs encodeURIComponent

JavaScript heeft twee functies voor URL-codering. encodeURI() codeert volledige URL's en codeert geen URL-structuurtekens zoals :, /, ?, &, =. Gebruik deze voor complete URL's. encodeURIComponent() codeert URL-componenten (zoals parameterwaarden) en codeert alle structuurtekens. Gebruik deze voor afzonderlijke componenten zoals queryparameters en padsegmenten. In de meeste gevallen is encodeURIComponent() veiliger. Decoderen doe je respectievelijk met decodeURI() en decodeURIComponent().

05

5. Internationaal gedomineerde domeinnamen (IDN)

Domeinnamen in het Koreaans of andere talen (bijv. hanguk.com) worden omgezet naar Punycode. Punycode stelt Unicode-domeinen voor in ASCII met het xn-- voorvoegsel. Voorbeeld: "hanguk.com" wordt "xn--3e0b707e.com". Browsers voeren deze omzetting automatisch uit, maar bij directe verwerking in code is een Punycode-bibliotheek nodig. Let op: URL-paden en query's gebruiken gewone percent-encoding, terwijl domeinen Punycode gebruiken.

06

6. Best practices voor URL-codering

Belangrijke aandachtspunten bij URL-codering: codeer altijd gebruikersinvoer om XSS-aanvallen te voorkomen. Let erop dat je niet al gecodeerde URL's dubbel codeert. Bouw URL's op door elk onderdeel afzonderlijk te coderen en daarna samen te voegen. HTTP-clients zoals fetch() en axios coderen vaak automatisch, dus vermijd dubbele codering. Servers ondersteunen meestal automatische decodering, dus expliciet decoderen is meestal niet nodig. Bij loggen of debuggen is de gedecodeerde vorm van een URL beter leesbaar.

Veelgestelde vragen

Moet ik componentcodering of volledige URL-codering kiezen?
Gebruik "componentcodering" als je alleen een deel van een URL codeert, zoals een waarde van een queryparameter. Gebruik "volledige URL-codering" alleen bij een volledige, complete URL.
Waarom moeten URL's in andere talen worden gecodeerd?
URL's staan alleen ASCII-tekens toe, dus niet-ASCII-tekens (zoals é, Koreaanse of Chinese tekst) moeten worden omgezet naar percent-encoding (bijv. %C3%A9) zodat servers ze correct kunnen verwerken.
Wat gebeurt er als ik een al gecodeerde URL codeer?
Dan krijg je dubbele codering, waarbij % opnieuw wordt gecodeerd als %25 en de oorspronkelijke waarde wordt beschadigd. Controleer of een tekenreeks al gecodeerd is voordat je die opnieuw codeert.
Wat moet ik doen als decoderen een fout "Invalid URL encoding" geeft?
Controleer op onvolledige procentreeksen in je invoer (bijv. %2 zonder genoeg hex-cijfers erna). Alleen correct gecodeerde tekenreeksen kunnen worden gedecodeerd.
Hoe worden spaties gecodeerd?
Spaties worden meestal gecodeerd als + in querystrings of %20 in paden. Deze tool gebruikt het standaard %-encodingformaat %20.