Relatív URL feloldása HTML-ben

Honnan tudja a webböngésző, hogy a http cím egy könyvtárat vagy egy konkrét fájlt jelent a szerveren?

Pl. ha a http://foo.com/bar.html fájlban van egy link a baz.html-re, azt a böngésző a http://foo.com/baz.html-re mutató linkként oldja fel. Ha viszont a foo.com szervergyökerében van egy bar.html nevű könyvtár, és abban egy index.html fájl, de a felhasználó szintén a http://foo.com/bar.html címet írja be, akkor az oldalon lévő bar.html linket a http://foo.com/bar.html/baz.html-re mutató linkként értelmezi. Kipróbáltam, a HTTP headerben nincs különbség.

Hozzászólások

Te érted is amit írtál?!
A gyökérben csak egy index.akármi lehet!

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

Mi van???? Mit akarsz azzal a baz.html-lel? És miért kell követni az angol terminológiát? Baromira érthetetlen.

Ha van egy almafa.html valahol a szerveren, akkor tök 8, hogy valójában fájl vagy könyvtár, a nyamvadt böngésző úgyis először úgy fogja lekérdezni, hogy GET http://szervernév/.../almafa.html HTTP/1.1 stb., és ha nem fájl, hanem könyvtár, akkor a szerver válaszol egy HTTP/1.1 3xx Moved .... válasszal, ezután a kliens egy GET http://szervernév/.../almafa.html/ HTTP/.1.1-et küld, ugyanis a szerver azt mondja, hogy ilyen néven találja meg (a fenti 3xx-es válaszban). A könyvtárban meg nem feltételnül az index.html fájlt fogja beolvasni, lehet, hogy az index.php-t vagy az index.html-t, vagy kispista.html-t, attól függően, hogy mi a szerver beállítása.

Tehát a böngészőnek halvány gőze sincs arról, hogy a kérdéses URL egy fájtl vagy könyvtárat jelent, ha nem végződik /-re (a kérdőjel után álló paramétereket nem számítva).