[HTML] Verschil in verwerking absolute / relatieve URL's

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Wat ik me nu al tijden afvraag, is hoe HTML URL's afhandelt. Stel, mijn website staat op http://www.website.com en plaatjes bewaar ik in de map "images". Als ik een plaatje wil oproepen kan dat op drie manieren:
HTML:
1
2
3
4
5
6
1. [img]"http://www.website.com/images/plaatje.gif"[/img] of

2. [img]"/images/plaatje.gif"[/img] of

3. [img]"images/plaatje.gif"[/img], als ik werk met 
   <base href="http://www.website.com/">

Mijn vraag is nu: als ik het plaatje op manier 1 aanroep, wordt het plaatje dan gedownload als elk ander extern plaatje (zoals bijvoorbeeld img src="http://www.cnn.com/gfx/s/logo-big.jpg") of ziet de interpreter dat de src property begint met het domein waar de huidige website staat, en haalt hij het plaatje dus lokaal op?

Ik vraag dit ivm met een CMS waar ik mee bezig ben. In de config file heb ik nu de variabele
PHP:
1
$_BASE_URL = 'http://www.website.com/';

Automatisch worden nu bijvoorbeeld de plaatjes van de template bestanden aangeroepen als
[php]$html .= '[img]"'.$_BASE_URL.'images/header.gif">';[/php] Dit[/img] op. Maar als het zo is dat het plaatje nu als extern behandeld wordt, kan ik beter een extra variabele in mijn config aanmaken:
PHP:
1
2
$_BASE_URL = 'http://www.website.com';
$_BASE_DIR = '/';

En dan als volgt mijn template images aanroepen:
[php]$html .= '[img]"'.$_BASE_DIR.'images/header.gif">';[/php] Dit[/img] opleveren in het output, en dan weet ik zeker dat ik het plaatje lokaal ophaal. Echter, ik moet dan wel enkele tientallen bestanden gaan updaten (schopt u maar ;) :+) Vandaar mijn vraag.

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Verwijderd

Het maakt niet uit. Browsers zijn intelligent. Het gebruiken van '/' bespaart echter wel enkele bytes aan bandbreedte.

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Reveller schreef op 16 september 2004 @ 14:01:
Wat ik me nu al tijden afvraag, is hoe HTML URL's afhandelt. Stel, mijn website staat op http://www.website.com en plaatjes bewaar ik in de map "images". Als ik een plaatje wil oproepen kan dat op drie manieren:
HTML:
1
2
3
4
5
6
1. [img]"http://www.website.com/images/plaatje.gif"[/img] of

2. [img]"/images/plaatje.gif"[/img] of

3. [img]"images/plaatje.gif"[/img], als ik werk met 
   <base href="http://www.website.com/">

Mijn vraag is nu: als ik het plaatje op manier 1 aanroep, wordt het plaatje dan gedownload als elk ander extern plaatje (zoals bijvoorbeeld img src="http://www.cnn.com/gfx/s/logo-big.jpg") of ziet de interpreter dat de src property begint met het domein waar de huidige website staat, en haalt hij het plaatje dus lokaal op?
HTML handelt de URL's niet af; het geeft alleen aan waar externe bronnen te vinden zijn. De browser zorgt dan voor het binnenhalen van die bronnen. Uiteindelijk zal de browser dus de absolute url, http://www.website.com/images/plaatje.gif, gebruiken om het plaatje binnen te halen.

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Ik denk zelfs dat absolute paden sneller zijn omdat de browser niet hoeft te kijken wat de complete url is (die staat er al), en bij relatieve paden moet de browser dat wel.

Maar dat zal wel over millisecondes gaan :P

Verwijderd

Hij moet dan wel checken of de plaatjes van hetzelfde of van een ander domein komen (security enzo). Dus die seconden voorsprong ben je zo weer kwijt.

  • JoeKurr
  • Registratie: Juli 2001
  • Laatst online: 17-11-2025

JoeKurr

Past niet in een MiG-21

Ook wordt het met absolute paden lastiger om je site te verhuizen naar een andere server / domein.

Dutch Flanker Display Team
You can't be lost if you don't care where you are


Verwijderd

Maar dat is met absoluut relatief ook het geval (stel je verhuist een gedeelte naar een dieperliggende map). Het probleem met relatief relatief is dat je voor elk bestand (afhankelijk van de map) een andere URI moet gebruiken voor bijvoorbeeld je CSS bestand.

Maar als je al iets verhuist moet je altijd ervoor zorgen dat de URIs blijven werken. (De oude dus ook.) Theoretisch zou je trouwens de HTTP 'content-location' header kunnen gebruiken om aan te geven waar de inhoud zich bevindt nadat je een document hebt verplaatst zodat je het document zelf niet hoeft aan te passen.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:53
JoeKurr schreef op 16 september 2004 @ 14:32:
Ook wordt het met absolute paden lastiger om je site te verhuizen naar een andere server / domein.
Daar is toch zijn config bestandje voor zoals je in het voorbeeld ziet?

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Reveller schreef op 16 september 2004 @ 14:01:
Dit zou dan [img]"/images/header.gif"[/img] opleveren in het output, en dan weet ik zeker dat ik het plaatje lokaal ophaal.
Uh..., "lokaal ophaal" :?

Plaatjes worden nooit lokaal opgehaald, die staan namelijk op de webserver en jij als client zal ze daar dus vandaan moeten halen. Of begrijp ik je nu compleet verkeerd?

Today's subliminal thought is:

Pagina: 1