Wat is het verschil tussen een absoluut en relatief pad?

20 augustus, 2014
Vragen & antwoorden
Webhosting, Website

Bij het werken met bestandssystemen en webadressen zijn er vaak twee mogelijkheden om, bijvoorbeeld in een HTML-pagina of PHP-script, de locatie van een (andere) webpagina, een bestand of een map op te geven: een absoluut pad, of een relatief pad. Het verschil zit in de specificiteit van het pad.

Een absoluut pad is een volwaardige, ondubbelzinnige verwijzing naar een bestandslocatie, inclusief alle onderliggende mappen, tot en met de zogeheten root, oftewel het laagst mogelijke niveau. Enkele voorbeelden van absolute paden zijn: "/help/vragen/wat-is-verschil-tussen-absoluut-relatief-pad-171" (pad van deze pagina), "/var/log/nginx/access.log" (Linux) en "C:\Windows\System32\drivers\etc" (Windows).

Een relatief pad gaat daarentegen uit van de huidige locatie waarin een programma, script of de gebruiker zich bevindt. Met een relatief pad kan daarom naar een bestand in dezelfde of een hoger of dieper gelegen map verwezen worden zonder het volledige (absolute) pad te hoeven herhalen. Bevindt de gebruiker zich bijvoorbeeld op deze website in de map "/help/vragen/", dan volstaat in de HTML een relatieve link naar "wat-is-verschil-tussen-absoluut-relatief-pad-171" om op het volledige adres "/help/vragen/wat-is-verschil-tussen-absoluut-relatief-pad-171" uit te komen. Bij een relatief pad wordt de opgevraagde bestandsnaam door het systeem (of de web browser) dus als het ware achter de huidige map geplaatst om het volledige pad te vormen.

In een pad staat de eerste schuine streep (/) altijd gelijk aan de root van een URL of bestandssysteem. Wanneer hier één punt aan voorafgaat (./), is dit een verwijzing naar de huidige map. Met twee punten (../) is het een verwijzing naar de map die één niveau hoger ligt.

Werkende vanuit de map "/help/vragen/" zouden we de volgende paden kunnen onderscheiden:

Absoluut pad naar dit helpartikel:

/help/vragen/wat-is-verschil-tussen-absoluut-relatief-pad-171

Relatief pad naar dit helpartikel: (we bevinden ons reeds in de map /help/vragen/)

wat-is-verschil-tussen-absoluut-relatief-pad-171

Absoluut pad naar de /help/-map:

/help/

Relatief pad naar de /help/-map: (we bevinden ons in de map /help/vragen/)

../

Absoluut pad naar de /vps/-map:

/vps/

Relatief pad naar de /vps/-map: (we bevinden ons in de map /help/vragen/, dus moeten twee niveau's terug)

../../vps/

Een relatief pad is dus vaak, maar niet altijd korter dan een absoluut pad. Relatieve paden zijn daarom vooral praktisch in zeer uitgebreide mapstructuren, waarbij een volledig (absoluut) pad onnodig veel ruimte in zou nemen. Vanwege de ondubbelzinnigheid geven veel programma's de voorkeur aan absolute paden — het is immers niet mogelijk om een absoluut pad verkeerd te lezen, wat de kans op eventuele programmafouten verkleint.