Odkazy a URL

Ji°φ Kosek ml.

Nejv∞tÜφ silou HTML je mo₧nost zachytit vztahy mezi Φßstmi textu Φi obrßzky a jin²mi dokumenty. VÜichni vφme, ₧e n∞kterΘ Φßsti WWW strßnky mohou slou₧it jako odkazy na jinΘ strßnky -- staΦφ na takovΘ mφsto kliknout a ocitneme se na novΘ strßnce. Odkazy v∞tÜinou poznßme tak, ₧e jsou podtr₧eny (v p°φpad∞ textu) Φi zarßmeΦkovßny (v p°φpad∞ obrßzk∙). DalÜφm poznßvacφm znamφnkem odkaz∙ je zm∞na tvaru kurzoru myÜi -- pokud myÜφ najedeme nad odkaz, zm∞nφ se kurzor z Üipky na ukazujφcφ ruku.

Ne₧ si vÜak povφme, jak na naÜφ strßnce vytvo°it odkaz, musφme si nejprve n∞co pov∞d∞t o adresßch, kterΘ pou₧φvß WWW. Za ka₧d²m odkazem se toti₧ musφ skr²vat urΦenφ mφsta v Internetu, kam odkaz ukazuje.

URL

Pro pot°eby Webu byl vytvo°en tzv. URL (Uniform Resource Locator) -- URL je prßv∞ tou jednoznaΦnou adresou, kterß je pou₧φvßna pro identifikaci r∙zn²ch zdroj∙ na Internetu (webovsk²ch strßnek, e-mailov²ch adres, soubor∙, diskusnφch skupin, ...).

Nap°φklad adresa http://www.uzdroje.cz/film.html je typick²m p°φkladem URL, se kter²m se setkßvßme nejΦast∞ji. Obecn² tvar URL je vÜak slo₧it∞jÜφ:

schΘma://u₧ivatel:heslo@poΦφtaΦ:port/cesta;parametry?dotaz#fragment. Samoz°ejm∞, ₧e URL nemusφ obsahovat vÜechny Φßsti.

Tab. 1: NejΦast∞jÜφ schΘmata pro URL
filesoubor na lokßlnφm disku
ftpFile Transfer Protocol (p°enos soubor∙)
gopherGopher protocol
httpHyperText Transfer Protocol (World-Wide Web)
mailtoadresa pro elektronickou poÜtu
newsdiskusnφ skupiny
nntpdiskusnφ skupina na urΦitΘm serveru
telnetterminßlov² p°φstup ke vzdßlenΘmu poΦφtaΦi
Seznam mo₧n²ch schΘmat m∙₧eme nalΘzt v tabulce 1. SchΘma indikuje typ zdroje -- nejΦast∞ji protokolem, kter² je nutnΘ pou₧φt pro dosa₧enφ danΘho zdroje. NejΦast∞ji pou₧φvan²m schΘmatem je prßv∞ http, kterΘ indikuje webovskou strßnku (Φi p°esn∞ji objekt, kter² je dosa₧iteln² pomocφ protokolu HTTP).

Z Φßsti u₧ivatel:heslo@poΦφtaΦ:port se v∞tÜinou v praxi pou₧ije jen poΦφtaΦ pro urΦenφ domΘnovΘ adresy poΦφtaΦe, na kterΘm se nachßzφ po₧adovanß informace. V naÜem p°φklad∞ je poΦφtaΦem prßv∞ server s adresou www.uzdroje.cz.

DalÜφ Φßstφ URL je cesta, kterß v p°φpad∞ Webu urΦuje cestu a jmΘno souboru, kter² je po₧adovßn.

POZOR: N∞kterß URL nemajφ specifikovßno jmΘno souboru. Nebojte nejsou nekompletnφ. WebovskΘ servery automaticky doplnφ n∞jakΘ implicitnφ jmΘno -- nejΦast∞ji index.html nebo default.html.

╚ßst URL parametry se p°φliÜ nepou₧φvß. Dotaz je pou₧φvßn nap°φklad pro p°edßvßnφ hodnot zφskan²ch ze strßnek, kterΘ jsou formulß°i (to jsou ty strßnky, kterΘ obsahujφ r∙znß vstupnφ pole a umo₧≥ujφ tak nap°. zadat parametry hledanΘho vlakovΘho spojenφ).

O poslednφ Φßsti URL -- fragmentu -- si ke konci dneÜnφho pokraΦovßnφ serißlu povφme n∞co podrobn∞ji. Vyu₧ijeme jej v p°φpadech, kdy se pot°ebujeme odkazovat pouze na n∞jakou Φßst webovskΘ strßnky a ne na strßnku jako celek.

Ji₧ je nejvyÜÜφ Φas, abychom si ukßzali, jak v HTML vytvo°it odkaz. K vytvo°enφ odkazu se vyu₧φvß element <A> a jeho atribut HREF. Postup je nßsledujφcφ:

  1. napφÜeme do dokumentu zaΦßtek tagu <A  (za A musφ b²t mezera);
  2. specifikujeme URL dokumentu (nebo jinΘho zdroje), na kter² se chceme odkazovat -- napφÜeme HREF="URL">;
  3. napφÜeme text, kter² bude pou₧it jako odkaz (bude podtr₧en a kliknutφm na n∞j se odkaz aktivuje);
  4. cel² odkaz ukonΦφme tagem </A>.

Z pojmu obsa₧enΘho n∞kde uprost°ed v∞ty m∙₧eme snadno vytvo°it odkaz:

 ...
Mnoho zajφmav²ch informacφ o slu₧b∞ WWW lze nalΘzt na serveru
<A HREF="http://www.w3.org">konsorcia W3C</A>. Naleznete zde
i informace o nejnov∞jÜφ verzi jazyka HTML.
 ...
V prohlφ₧eΦi dopadne v²sledek p°ibli₧n∞ takto:

P°i specifikaci cesty v URL se k odd∞lovßnφ jednotliv²ch adresß°∙ nepou₧φvß zp∞tnΘ lomφtko ('\') jako v DOSu nebo Windows, ale normßlnφ lomφtko ('/') jako v UNIXu. P°.: http://www.w3.org/pub/WWW/TR/PR-html32-961105.html

POZOR: V∞tÜina server∙ pracuje pod operaΦnφmi systΘmy UNIX nebo Windows NT. Tyto systΘmy v nßzvech soubor∙ rozliÜujφ mezi mal²mi a velk²mi pφsmeny. P°i zßpisu URL musφme dßt v₧dy pozor na to, zda pou₧φvßme sprßvnou velikost pφsmen.

Relativnφ URL

Dosud jsme pracovali pouze s URL, kde bylo specifikovßno schΘma i poΦφtaΦ. Velice zajφmavΘho a u₧iteΦnΘho efektu lze dosßhnout, pokud pou₧ijeme z celΘho URL jen Φßst pro specifikaci cesty. P°edstavme si, ₧e z n∞jakΘ strßnky mßme odkaz na strßnku, kterß je ulo₧ena ve stejnΘm adresß°i. Mohli bychom zdlouhav∞ opisovat celΘ URL. Existuje vÜak mnohem snazÜφ °eÜenφ -- jako URL staΦφ pou₧φt samotnΘ jmΘno souboru. Prohlφ₧eΦ automaticky doplnφ zaΦßtek URL podle dokumentu, kter² odkaz obsahuje. Jak to vÜechno m∙₧e fungovat si ukß₧eme na malΘ ukßzce. P°edpoklßdejme, ₧e na serveru www.manicka.cz existuje adresß°ovß struktura znßzorn∞nß na obr. 2. V dokumentu index.html, kter² je v adresß°i users, bude n∞kolik relativnφch odkaz∙. My si ukß₧eme, jak se vykonstruuje v²slednΘ URL.

Obr. 2: Adresß°ovß struktura na serveru MßniΦka

Nejprve urΦφme URL dokumentu, kter² obsahuje odkazy: http://www.manicka.cz/pub/users/index.html. Kam budou ukazovat r∙znß relativnφ URL si ukß₧eme v p°ehlednΘ tabulce:

Relativnφ URLV²slednΘ URL
uzivatele.htmlhttp://www.manicka.cz/pub/users/uzivatele.html
spejbl/drevaky.htmlhttp://www.manicka.cz/pub/users/spejbl/drevaky.html
../globus.htmlhttp://www.manicka.cz/pub/globus.html
../info/logo.gifhttp://www.manicka.cz/pub/info/logo.gif

Jak vidφme, pomocφ dvou teΦek .. se m∙₧eme dostat v ·rovni adresß°∙ na vyÜÜφ ·rove≥. Tuto vlastnost lze aplikovat pouze na ·rovni cesty, pou₧φt ji ke zm∞n∞ serveru je nep°φpustnΘ (v naÜφ ukßzce by tedy zßpis ../../../www.w3.org byl naprosto chybn² a zcestn²).

TIP: Odkazy v rßmci jednΘ logicky ucelenΘ skupiny dokument∙ (nap°. kniha, informace o firm∞) by m∞ly b²t relativnφ. Odkazy na ostatnφ dokumenty (nap°. citace jin²ch knih, odkazy na partnerskΘ firmy) by m∞ly b²t absolutnφ. Po p°esunu celΘ skupiny dokument∙ do jinΘho adresß°e nebo na jin² server nebude nutnΘ m∞nit URL obsa₧en²ch odkaz∙.

Odkazy na urΦitΘ mφsto dokumentu

Pokud je n∞jak² dokument dlouh², je ·ΦelnΘ odkazovat se na n∞j nejen jako na jeden celek, ale i na jeho jednotlivΘ Φßsti. Tuto mo₧nost nßm HTML nabφzφ prost°ednictvφm elementu <A> a jeho atributu NAME ve spojenφ s Φßstφ URL, kterou jsme nazvali fragment. Atribut NAME nßm umo₧≥uje oznaΦit ·sek dokumentu nßv∞stφm, na kterΘ se lze odkazovat z libovolnΘho dokumentu. Definice nßv∞stφ se provßdφ nßsledovn∞:
  1. napφÜeme do dokumentu zaΦßtek tagu <A  (za A musφ b²t mezera);
  2. specifikujeme jmΘno nßv∞stφ, na kterΘ se budeme odkazovat -- napφÜeme NAME="jmΘno_nßv∞stφ">;
  3. napφÜeme text, kter² bude nßv∞stφm oznaΦen;
  4. celou definici nßv∞stφ ukonΦφme tagem </A>.

Pokud se odkazujeme na n∞jakou Φßst v rßmci tΘho₧ dokumentu, s v²hodou pou₧ijeme relativnφ URL:

Zde je odkaz na <A HREF="#abrakadabra">n∞jakΘ nßv∞stφ</A>
ve stejnΘm dokumentu
Pokud se chceme odkazovat na nßv∞stφ v jinΘm dokumentu, p°ipojφme fragment (jmΘno nßv∞stφ dopln∞nΘ zep°edu o znak '#') za jmΘno dokumentu:
Zde je odkaz na n∞jakΘ mφsto v jinΘm dokumentu:
<A HREF="http://www.manicka.cz/info/bilance.html#rok1995">
Bilance za rok 1995</A>
╚ßst souboru bilance.html pak m∙₧e vypadat nap°. takto:
 ...
<H3><A NAME="rok1995">Bilance 1995</A></H3>
<P>
V roce 1995 dosßhla naÜe firma ...

© Ji°φ Kosek 1999