URL

URL znamená Unique Resource Locator = jednoznačné určení zroje. Je to způsob, jak jednoznačně zapsat umístění souboru na Internetu nebo na intranetu. URL je synonymem pro internetové adresy. V HTML se URL používá jak pro zacílení odkazů, tak pro načítání obrázků, stylů, skriptů a dalších podpůrných souborů.

Příklad: http://www.seznam.cz je URL ukazující na stránku Seznamu.
https://www.jakpsatweb.cz/html/url.htm je URL ukazující na tuto stránku. 

URL se do stránek zapisuje buďto jako absolutní adresa, nebo jako relativní. Zatímco absolutní adresa je to samé, co URL, relativní adresa je nějaký zkrácený zápis adresy, který funguje díky tomu, že prohlížeč ten zápis pochopí podle adresy aktuální stránky.

Pozor, v URL záleží na velikosti písmen!

Skladba absolutní URL

Každá absolutní adresa se skládá z protokolu, doménového jména a cesty. Cesta se může skládat z adresářové cesty a jména souboru. Někdy jsou v adrese ještě číslo portu, jméno #kotvy a ?dotaz (query string).

Protokoly

HTML stránky se přenášejí http protokolem, nebo https protokolem. Ty se do URL zapisují jako http:// a https://

Z pohledu tvorby stránek je rozdíl mezi http a https nepodstatný. Rozdíl nastává až při komunikaci serveru s prohlížečem. Http se internetem přenáší nezakódovaně, https je protokol šifrovaný.

Při psaní adres nelze http a https zaměňovat, protože na serveru nemusejí oba protokoly fungovat a protože teoreticky mohou poskytovat odlišný obsah. Používáte-li absolutní adresy, zjistěte si, na jakém protokolu daný web běží. (Může se hodit návod jak převést web na protokol https.)

Další protokoly mailto: , ftp:// se užívají zřídka. Já jim říkám pseudoprotokoly, protože si výrobci prohlížečů mohou nadefinovat vlastní a protože konkrétní chování pak záleží na prohlížeči.

Domény

Každý server na Internetu má doménové jméno (anglicky hostname). To se skládá ze tří částí oddělených tečkami.

  1. jméno virtuálního serveru, nejčastěji www (doména třetí úrovně) - nebo tam nemusí být nic
  2. jméno domény druhé úrovně
  3. doména nejvyššího řádu (nejčastěji cz, sk nebo com)

Více v textu o doménách.

Port

Velmi zřídka se za generickou doménu píše dvojtečka a číslo portu. Používá se to hlavně u vývojových verzí nebo na intranetech. Pokud jméno portu uvedeno není, server odpovídá na portu 80 pro protokol http a na portu 443 pro protokol https.

Adresářová cesta

Cesta vždy začíná lomítkem. Toto první lomítko za generickou doménou označuje kořen domény.

Cílový soubor bývá uložen v adresáři (ale může být přímo v kořeni serveru). Adresáře se do URL zapisují za generickou doménu. Za jméno adresáře patří lomítko (obyčejné, nikoli zpětné). Je-li adresářů více úrovní, píšou se za sebe odděleny lomítky.

Hlavní stránka webu má typicky cestu jedno jednoduché lomítko. Pokud URL zadáte bez lomítka (např. http://example.com , server by si měl na konci lomítko domyslet a poslat obsah z http://example.com/ .

Soubory

Vlastní jméno souboru se píše za adresářovou cestu (existuje-li). Protože adresářová cesta logicky musí končit lomítkem, píše se jméno souboru za nějaké lomítko.

Dotaz, parametry

Součástí URL mohou být i vstupní parametry pro nějaký skript nebo program běžící na serveru. Parametry se do URL píšou na konec za otazník. Syntaxe je ?jmeno=hodnota&jmeno2=hodnota2.

Fragment

Odkaz může mířit na kotvu v odkazovaném dokumentu. Do URL se za jméno souboru píše křížek # a jméno kotvy. Spíše než název "kotva" se používá jméno "fragment" nebo "název kotvy":

#fragment

Existuje také zvláštní typ fragmentu, který může odkazovat na text, který se na stránce má najít a zvýraznit:

#:~:text=hledaný%20text

Příklad

Příkladem absolutního URL může být:
http://www.jakpsatweb.cz/html/url.htm#priklad

Část adresy Příklad Jiné možné hodnoty
protokol http:// ftp:// , mailto: atd.
doména 3. úrovně (server) www. www. , cokoliv.
doména 2. úrovně jakpsatweb. seznam. , mujweb. apod.
doména nejvyššího řádu cz com, sk, gov apod.
port nic :80 , :číslo
cesta (adresáře) /html/ /, /cokoliv/adresar/
jméno souboru url.htm index.html apod.html
kotva #priklad #jménokotvy
dotaz nic ?proměnná=hodnota

Relativní adresování

Mnohdy je vypisování celé absolutní adresy zbytečné a zdlouhavé. Existuje možnost, jak si práci usnadnit použitím relativní adresy.

Myšlenka relativních adres se zakládá na tom, že soubory, které se navzájem odkazují, často leží na tomtéž serveru. Každý soubor, který pomocí URL vyžaduje jiný soubor, má sám nějaké absolutní URL. Takže stačí, aby se do adresy napsaly cesta k souboru, lomítko a jméno souboru. To je relativní URL.

relativní URL = cesta/jméno_souboru

Často oba soubory leží v jednom adresáři, takže pak není nutno vyplňovat cestu (je prázdná), relativní URL tvoří pouze jméno souboru.

Adresáře se oddělují lomítky. Pokud se cílený soubor nachází v hierarchii adresářů někde výše (takže je nutno "vyskákat" nahoru), použije se zápis dvou teček pro nadřazený adresář.

Příklad: Vložení obrázku s logem Jak psát web do této stránky za použití relativní adresy by se udělalo takto: <img src="../images/jakpw.png">

V relativním URL lze samozřejmě použít kotvy a dotazy.

Adresy začínající lomítkem (možno přeskočit)

Pokud adresa začíná jedním lomítkem, odvozuje se od kořene své domény.

Příklad: použiju-li na tomto webu kořenovou adresu "/images/jakpw.png", vztahuje se k absulutní adrese "https://www.jakpsatweb.cz/images/jakpw.png". Kdybych ji použil na jiném webu, např. na http://example.com, bude se vztahovat k http://example.com/images/jakpw.png.

Pokud adresa začíná dvěma lomítky, jde o adresu nezávislou na protokolu. Před takovou adresu si prohlížeč doplní ten protokol, na kterém se nachází stránka, kde takovou adresu našel.

Např. //www.jakpsatweb.cz/images/jakpw.png se vztahuje k adrese https://www.jakpsatweb.cz/images/jakpw.png, pokud je uvedena na https protokolu. Kdyby byla na http protokolu, tak si tam prohlížeč doplní http:.

Teď trochu exaktněji (příp. přeskočte)

Když píšu o relativním URL, je to z hlediska přesnosti blbost. Nic takového v reálu neexistuje, protože když klient (prohlížeč) najde relativní adresu, tak si ji hned převede na absolutní URL.

Nechtěl jsem to komplikovat, ale pokud vás zajímá korektní syntaxe absolutní URL, tak vypadá nějak takhle:

protokol://[uzivatel[:heslo]@]adresa_pocitace[:port]/[cesta/][soubor]

To s těmi hranatými závorkami je konvenční zápis: co je v hranatých závorkách, to tam být může, ale nemusí. Jak vidíte, doménové jméno je vlastně adresa počítače. A z hlediska serveru je zápis /soubor absolutní cestou v kořeni dokumentů.

Někdy se místo URL říká URI.

URI je souhrný název pro URN (names) a URL. Je to trochu zbytečný maglajs, protože URN jsem v praxi snad nikdy použít neviděl. Když tedy někdy vidíte, že je řeč o URI, tak je to to samé co URL, akorát módněji podané.

Se zkratkou URI se asi nejčastěji setkáte v případě něčeho, čemu se říká Data URI schéma, což je zápis obrázků přímo do html dokumentu (pro podrobnosti o data URI zatím odkazuji na wikipedii).

Speciální znaky

Pokud se ve jménu souboru vyskytuje mezera, je nutno nahradit ji v URL sekvencí znaků "%20". Říká se tomu URL encoding. Takto lze nahradit každý znak znakem procenta se dvěma znaky, které jsou šestnáctkovým zápisem toho původního znaku.

Takové překódování je nutné i v případě diakritizovaných znaků ve jménech souborů a adresářů. Mimochodem jména souborů a adresářů doporučují bez mezer, háčků a čárek, aby nevznikaly chyby a nebyla s tím práce.

Znak & v url

V některých případech se v URL stránky vyskytuje znak ampersand, latinské et, prostě &. Typicky se používá na oddělování parametrů skriptu, například:

http://nějaká-doména.cz/skript.php?parametr=1&druhý=2

Pokud takto adresu URL napíšete do adresního řádku prohlížeče, bude fungovat (tato je samozřejmě vymyšlená). Jestliže ale tuto adresu budete chtít zapsat do html třeba jako cíl odkazu, mělo by se to psát jinak:

<a href="http://nějaká-doména.cz/skript.php?parametr=1&amp;druhý=2"> odkaz</a>

Odkaz bude nadále fungovat naprosto stejně. Zápis &amp; je html entita pro znak ampersand.

Co se stane, když napíšu do HTML odkaz bez entity? Takto:

<a href="http://nějaká-doména.cz/skript.php?parametr=1&druhý=2">odkaz</a>

Většinou se nestane nic, ale jednak to nebude validní, a druhak se může stát, že to v některých řídkých případech nebude fungovat v Internet Exploreru. Například hledání v Seznamu obsahuje sekce a regiony, které se kdysi zapisovaly parametry sect a reg. Zápis

skript?parametr=1&reg=2

nebo

skript.php?parametr=1&sect=2

pochopí Internet Explorer zcela chybně jako začátek entity (&reg; a &sect;) a parametr neodešle správně. Příklad. Řešení je napsat to do HTML takto:

skript?parametr=1&amp;reg=2
skript.php?parametr=1&amp;sect=2

Kde záleží na velikosti písmen

Skoro všude. Všude za doménou záleží na velikosti písmen.

V adresářové cestě a jménu souborů záleží na velikosti písmen. Soubor.html je něco jiného než soubor.html, protože velké S a malé s jsou odlišné znaky. Pokud jste ze systému Windows zvyklí, že na velikosti písmen ve jménech souboru nezáleží, tak si odvykněte, protože normální počítače velikost písmen rozlišují.

Chybné velké nebo malé písmeno je nejčastější začátečnická chyba související s psaním adres. Teď trochu machrování se slovíčky:

Takže URL je case-sensitivní, zejména relativní adresy. Oproti tomu protokol a doména se vždy píšou malými písmeny, ale nevadí, když je zapíšete velkými, takže protokol a doména nejsou case-sentitivní (ale zapsané velkými písmeny to vypadá fakt divně).

Jazyková poznámka

V češtině se URL legračně používá ve všech třech mluvnických rodech. V angličtině URL znamená Uniform Resource Locator, ale v angličtině rody namají. V češtině se URL používá:

Já sám všechny rody u URL střídám, ale nikoli záměrně. Náramná švanda.

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

HTML tagy Abecedně Příklady HTML tahák

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.