URL

Validatierapport

Wat is de URL-validator?

Plak een URL en krijg een gestructureerd rapport terug: is hij goed opgebouwd, hoe ziet elk component eruit, en waar moet je op letten. De validator stuurt de URL door de native URL-constructor van de browser — die de WHATWG URL Standard implementeert — en legt daar per-component checks bovenop.

Een "geldige URL" is niet zomaar een URL die geparseerd wordt. Een URL als http://10.0.0.5/admin?token=abc123 parseert prima, maar er zijn drie dingen die je waarschijnlijk gemarkeerd wilt zien: http:// in plaats van https://, een IP-literal als host en een token in de query string. De validator haalt alle drie naar voren als waarschuwingen, los van de pass/fail-check. De onderliggende syntaxregels komen uit RFC 3986; de host-naming overwegingen uit RFC 1034 en operationele ervaring.

De output is JSON, dus je kunt het in een CI-script of een debug-log pipen. Alles draait in je browser — de URL verlaat je machine nooit. Wil je de URL alleen in componenten splitsen zonder de validatielaag, gebruik dan de URL Parser. Geïnternationaliseerde domeinnamen worden afgehandeld volgens IDNA-regels.

Hoe gebruik je de URL-validator

Drie stappen. Elke stap hoort bij een knop op deze pagina.

1

Plak een URL of laad het voorbeeld

Laat een URL in het linkerpaneel vallen. Klik op Voorbeeld om een schone, goed gevormde URL met percent-gecodeerde query-parameters te laden:

https://api.shop.example.com/v1/orders?customer=Ava%20Chen&status=active

De validator update terwijl je typt. Probeer randgevallen: http://-URLs, IP-literal hosts, URLs met credentials, single-label hosts (zonder TLD), Punycode-domeinen. Elk haalt een andere waarschuwing naar voren.

2

Lees het rapport

Het rechterpaneel toont een JSON-rapport met drie top-level velden: isValid (de URL is überhaupt geparseerd), checks (status per component — protocol, hostname, poort, pathname) en warnings (signaleringen die geen syntaxfouten zijn maar je waarschijnlijk wel interesseren).

3

Kopieer of download

Klik op Kopiëren om het JSON-rapport naar het klembord te sturen, of op Downloaden om het als .json op te slaan. Minificeren perst het rapport op één regel als je het voor een log-entry nodig hebt.

Wanneer je dit echt zou gebruiken

Een config-bestand auditen voor een deploy

De config van je service heeft 40 URLs — webhook-endpoints, OAuth-callbacks, integraties met derden. Eén heeft een ingebouwd wachtwoord uit een vergeten test, twee wijzen nog naar http:// staging-hosts. Ze één voor één door de validator halen vangt alle drie voordat ze de productie ingaan. Eisen aan URL-formaten staan ook in de OAuth 2.0-spec voor redirect-URIs.

Door gebruikers ingediende URLs in een formulier reviewen

Een gebruiker stuurt een "website"-veld in dat example blijkt te zijn — geen protocol, geen TLD, gewoon één woord. Of https://192.168.1.5 — ziet er geldig uit, parseert geldig, maar je wilt dat vrijwel zeker niet als profiel-link renderen. De validator haalt allebei naar voren: TLD-ontbreekt-waarschuwing op de eerste, IP-literal-host-waarschuwing op de tweede.

Diagnose stellen waarom een redirect faalt

Je OAuth-callback geeft 400 terug met "invalid redirect_uri." De URL ziet er prima uit in je browser. Je plakt hem in de validator en het springt eruit: het pad bevat een letterlijke spatie, en je auth-provider vergelijkt strings byte voor byte na canonicalisatie. De waarschuwing ("path contains unencoded space") was het antwoord.

Een Punycode-vs-Unicode-mismatch ontdekken

Je verwachtte münchen.example.com in het rapport en zag in plaats daarvan xn--mnchen-3ya.example.com. Dat is de Punycode-vorm — wat over de lijn gaat — en de validator markeert het zodat je weet dat de originele invoer niet-ASCII tekens bevatte. Handig wanneer een gebruiker in een bug-rapport een URL uit een IDN-domein heeft gekopieerd.

Veelgestelde vragen

Wat betekent "geldig" hier eigenlijk?

Twee lagen. isValid: true betekent dat de URL-constructor van de browser de invoer accepteert — oftewel de syntax is goed gevormd volgens de WHATWG URL Standard. warnings staat los: dingen die syntactisch geldig zijn maar waarschijnlijk niet wat je wilt (onveilig protocol, IP-literal, ingebouwde credentials, ontbrekende TLD enzovoort). Een URL kan geldig zijn en toch waarschuwingen hebben.

Controleert het of de URL daadwerkelijk ergens naartoe resolved?

Nee — dat zou een netwerkrequest vereisen, en deze tool draait volledig in je browser zonder uitgaande calls. De validator checkt alleen syntax en oppervlakkige heuristieken. Voor bereikbaarheid gebruik je curl -I of een speciale uptime-tool.

Waarom wordt http://example.com als waarschuwing gemarkeerd?

Omdat een platte-tekst URL in 2026 bijna altijd een fout is — moderne browsers waarschuwen gebruikers voordat formulieren over http:// verstuurd worden, Googles "why HTTPS matters" behandelt de lange versie, en HSTS-preloaded domeinen weigeren überhaupt over HTTP te laden. De waarschuwing is adviserend; bedoel je echt http:// (legacy intranet, lokaal dev), negeer hem dan.

En relatieve URLs zoals /api/orders?

De URL-constructor heeft een absolute URL nodig — zonder basis kan hij protocol of host niet bepalen. De validator retourneert in dat geval isValid: false met een duidelijke fout. Om een relatieve URL te valideren, zet er eerst een basis als https://example.com voor.

Zijn credentials in URLs altijd verkeerd?

Vrijwel altijd. RFC 3986 §3.2.1 noteert dat credentials in URLs om veiligheidsredenen deprecated zijn. Ze belanden in browser-history, in server-access-logs en in proxy-caches. Moderne browsers verwijderen ze stilletjes bij het plakken vanuit het klembord. De validator markeert ze zodat je een expliciete trace hebt voordat ze ergens lekken waar dat niet mag.

Houdt het rekening met IDN-domeinen?

Ja — de validator noteert of de hostname in Punycode-vorm (xn--...) of pure ASCII is. Browsers kunnen gebruikers de Unicode-vorm tonen terwijl ze op de lijn de Punycode-vorm versturen, wat de bron is van IDN-homograafaanvallen. De Punycode laten zien is een klein maar nuttig signaal.

Andere URL- & JSON-tools

Validatie is één operatie. Hier zie je wat er natuurlijk bij past: