In dit artikel
URL-structuur begrijpen
Een URL (Uniform Resource Locator) is het adres van een bron op het web. Elke URL volgt een gestructureerd formaat dat de browser vertelt waar naartoe te gaan en hoe er te komen. Het begrijpen van deze structuur is essentieel voor webontwikkelaars, SEO-specialisten en iedereen die met web-API's werkt.
Een volledige URL kan tot zeven afzonderlijke componenten bevatten: scheme (protocol), gebruikersnaam en wachtwoord (authenticatie), host (domein), poort, pad, querystring en fragment (hash). De meeste URL's gebruiken slechts enkele hiervan, maar ze allemaal kennen helpt bij het debuggen van complexe URL's.
Hoe URL-parsing werkt
URL-parsing ontleedt een URL-string in de individuele componenten volgens RFC 3986. Elk component heeft specifieke regels over welke tekens zijn toegestaan en wat ze betekenen.
- Protocol (scheme) — de methode om toegang te krijgen tot de bron: http, https, ftp, mailto of aangepaste schema's zoals myapp://
- Host — de domeinnaam of het IP-adres van de server. Kan subdomeinen bevatten (api.example.com) of een IPv4/IPv6-adres zijn
- Pad — de specifieke bronlocatie op de server. Segmenten worden gescheiden door schuine strepen en kunnen gecodeerde tekens bevatten
Probeer gratis — geen aanmelding vereist
URL parseren →Werken met queryparameters
Queryparameters zijn sleutel-waardeparen die na het vraagteken (?) aan een URL worden toegevoegd. Ze zijn de meest gebruikelijke manier om gegevens door te geven in GET-verzoeken en worden veel gebruikt in API's, analytics-tracking en zoekfunctionaliteit.
- Basisformaat — parameters gebruiken sleutel=waarde paren gescheiden door ampersands: ?page=2&sort=name&order=asc
- URL-codering — speciale tekens moeten procentueel worden gecodeerd: spaties worden %20 of +, ampersands in waarden worden %26
- Arrayparameters — sommige API's gebruiken herhaalde sleutels (color=red&color=blue) of haakjesnotatie voor arrays
- Lege en ontbrekende waarden — ?key= (lege string) verschilt van ?key (geen waarde) in veel serverframeworks
- Parametervolgorde — technisch zijn URL-parameters ongeordend, maar sommige API's zijn afhankelijk van volgorde voor caching of handtekeningvalidatie
Tips voor URL-debugging
URL's die er op het eerste gezicht correct uitzien, kunnen subtiele coderingsproblemen, ontbrekende componenten of onverwachte tekens bevatten. Deze tips helpen veelvoorkomende problemen snel op te sporen.
- Altijd decoderen voor het lezen — procentueel gecodeerde URL's zijn moeilijk te lezen. Decodeer eerst om de werkelijke verzonden waarden te zien
- Controleer op dubbele codering — %2520 betekent dat het procentteken zelf is gecodeerd (%25 = %), wat aangeeft dat de URL twee keer is gecodeerd
- Let op afsluitende schuine strepen — /api/users en /api/users/ kunnen anders worden gerouteerd afhankelijk van de serverconfiguratie
- Inspecteer het fragment — het hash-fragment wordt nooit naar de server gestuurd. Als uw servercode het nodig heeft, moet u een andere aanpak gebruiken
- Valideer de host — typefouten in domeinnamen komen veel voor. Controleer op ontbrekende punten, verwisselde tekens of verkeerde TLD's
Veelgestelde vragen
Wat is het verschil tussen een URL, URI en URN?
Een URI (Uniform Resource Identifier) is de algemene term voor elke identifier van een bron. Een URL (Uniform Resource Locator) is een URI die de locatie en toegangsmethode bevat. Een URN (Uniform Resource Name) is een URI die een bron benoemt zonder locatie te specificeren. In de praktijk gebruiken de meeste mensen URL en URI door elkaar.
Waarom worden sommige URL-tekens gecodeerd met procenttekens?
URL-codering converteert tekens met speciale betekenis in URL's naar een veilig formaat. Een spatie wordt bijvoorbeeld %20 omdat spaties niet geldig zijn in URL's. De ampersand (&) scheidt queryparameters, dus een letterlijke ampersand in een waarde moet worden gecodeerd als %26.
Hoe lang kan een URL zijn?
Er is geen officiele limiet in de HTTP-specificatie. De meeste browsers ondersteunen URL's tot ongeveer 2.048 tekens. Moderne browsers zoals Chrome ondersteunen tot 2MB. Serverlimieten varieren. Houd voor maximale compatibiliteit URL's onder de 2.000 tekens en gebruik POST-verzoeken voor grote gegevenspayloads.