Lomítka a tečky v adresách souborů

Tečka - Lomítko - Dvojtečka - Rozklad URL a adres

Když pracujete na počítači, tak po čase prostě nějak tušíte, jak se píšou cesty k souborům a kam se píšou lomítka nebo tečky. Ale proč se tam píšou? Já tomu taky moc nerozumím, ale zjistil jsem, že sepsáním svých postřehů mohu leckomu pomoci.

Tento text je záměrně neodborný a nepřesný. Věřím ale, že mě za to nikdo nezastřelí. Většina z konvencí zápisů souborů a cest, které se vyskytují na webu, vychází z operačních systémů Unix a Linux.

Tečka

2 tečky

Dvě tečky a lomítko znamenají nadřazený adresář. To pravděpodobně znáte.

../

například <img src="../kocicka.gif"> načte obrázek chytré kočičky z nadřazeného adresáře.

1 tečka

Jedna tečka a lomítko znamená v zápisu cesty "tento adresář". Většinou je ta tečka zbytečná, a proto se s tím v praxi setkáte velmi zřídka. Například odkaz na soubor kontakt.html do stejného adresáře se může zapsat takto:

<a href="./kontakt.html">odkaz</a>

Jistě chápete, že v tomto případě se dá ta tečka a lomítko vynechat, je to tedy to samé jako

<a href="kontakt.html">odkaz</a>

Skrytý soubor

Soubory, které začínají tečkou, jsou skryté. Například soubor s názvem .htaccess je skrytý.

Každý linuxový adresář automaticky obsahuje dva objekty -- tento adresář (./) a nadřazený adresář (../). Z logiky skrývání vyplývá, že tyto objekty jsou skryté, protože začínají tečkou. Jestli vám není jasné, jak může adresář obsahovat sám sebe, tak to nechte koňovi, má větší hlavu. Já to někde četl a během pár let studia na matfyzu jsem si na takovéhle divné věci docela zvyknul.

Tečka jako oddělovač přípony

Spousta lidí se domnívá, že jméno každého soboru musí obsahovat tečku na oddělení přípony.

Například když se soubor jmenuje robots.txt, tak

Většinou to tak opravdu je (a je to rozumná konvence), ale soubor ve svém názvu tečku obsahovat nemusí. Třeba soubor s názvem accesslog je v pohodě rovnoprávný soubor. Nemá příponu, to je pravda, to ale nic neznamená.

Hodně lidí se domnívá, že co nemá někde v názvu tečku, tak to že je adresář (neboli složka). Většinou tomu tak opravdu je, ale nelze to zobecňovat. Co v názvu nemá tečku, nemusí být adresář, může to být klidně soubor. Mimochodem to, co je adresář, by při zápisu URL za sebou správně mělo mít lomítko.

Tečka jako oddělovač doménových jmen

Určitě jste zvyklí psát tečky třeba do adresy www.seznam.cz. Tečky v tomto případě oddělují jednotlivé úrovně doménových jmen. CZ je doména nejvyšší úrovně (tak zvaná Top Level Domain, TLD, někdy též generická doména), "seznam" je doména druhé úrovně a "www" je doména třetí úrovně. Každý majitel domény druhé úrovně si na serveru může vytvořit neomezené množství domén třetí úrovně --i čtvrté, páté atd. Musí se to ale oddělovat tečkami. Všechna doménová jména zapsaná dohromady tvoří tak zvané hostname, zjednodušeně řečeno jméno počítače. Například hostname těchto stránek je celé www.jakpsatweb.cz.

Tečkami se oddělují i číslice v zápisu IP adresy. Například adresa 127.0.0.1 je vnitřní adresa každého počítače, adresa 66.249.85.99 je veřejnou adresou jednoho ze serverů Google. V IP adrese jsou vždy čtyři čísla oddělená třemi tečkami (pokud nebudu uvažovat o systému IPV6, kde je těch čísel šest a zapisuje se to nějak divočeji).

Lomítko

Lomítko odděluje adresáře

To jste si jistě v praxi všimli, že lomítko odděluje adresáře. (Anglicky se adresář jmenuje directory, ve Windows se adresářům říká složky, anglicky folder, je to všechno to samé.) Přesnější ovšem je říct, že v cestách se lomítkem zápis adresáře ukončuje. V URL teda rozhodně. Třeba když mám cestu k souboru

adresar/druhy_adresar/soubor.html

tak to první lomítko patří k tomu adresáři, další lomítku k tomu druhému adresáři. Když totiž chci na webu odkázat jenom na ten adresář, tak napíšu

adresar/

nebo

adresar/druhy_adresar/

Toto je korektní zápis cesty k adresářům (a server v nich obvykle hledá index.html). Lomítko na konci znamená adresář.

Jiná věc je ta, že když požádám webový server o toto:

adresar

ale server nic takového nenajde. V tom případě za to server (z vlastní iniciativy) zkusí doplnit lomítko (převést to na adresář). Pokud takový adresář existuje, tak mi ho vrátí (respektive jeho index.html). Jak ale jistě chápete, zápis adresar se mohl klidně vztahovat k souboru (bez přípony). Z toho plyne poučení, že na adresáře je vždycky lepší odkazovat s lomítkem na konci a nenechávat to na iniciativě serveru.

Zpětná lomítka

Na Windows se leccos trochu jinak než na normálních počítačích, takže ve Windowsech se adresáře neoddělují lomítky, ale zpětnými lomítky, to je dědictví z DOSu. Například cesta na Windowsech může vypadat takto:

C:\adresar\druhy_adresar\soubor.html

Takový zápis perfektně funguje na Windowsech, ale často selhává na Linuxu nebo Unixu, tam se totiž adresáře oddělují vždy lomítky (tak je to správně). Poslední dobou se mi ale zdá, že se Windows trochu umoudřily, protože většinu adres zapsaných s obyčejnými lomítky pochopí. Dá se tedy psát

C:/adresar/druhy_adresar/soubor.html

a Windowsy si to přeloží do zpětných lomítek na původní zápis

C:\adresar\druhy_adresar\soubor.html

Naopak to ale nefunguje! Pokud na webu budete odkazovat soubory v adresářích pomocí zpětných lomítek, tak se soubory nenajdou. Jde o jednu z nejčastějších začátečnických chyb. Je to chyba zákeřná, protože třeba odkazy zapsané se zpětnými lomítky na disku fungují, ale jakmile se to pošle na server, tak se místo obrázků objevují křížky a po kliknutí na odkaz nelze 404 stránek nalézt.

Poznámka: pokud na české klávesnici neumíte napsat zpětné lomítko \, tak je to pravý Alt + Q.

Lomítko na začátku je root

Root znamená kořen. Když něco začíná lomítkem, bývá to označení rootu. V praxi se můžete setkat se dvěma druhy rootovských adresářů:

  1. root počítače (většinou serveru)
  2. root webu (domény)

Root počítače. Linux funguje trochu jinak než Windowsy, na první pohled se totiž nestará o to, co má na kterém disku. Všechno má jakoby v adresáři /. Adresa k souboru se pak na Linuxu nezapisuje C:\něco, ale třeba /něco. Když se pak chci na Linuxu dostat do domovského adresáře uživatele dusan, tak zadám příkaz

cd /home/dusan/

To cd můžete ignorovat (je to příkaz), ale všimněte si lomítka před adresářem "home". Tím lomítkem říkám, že chci přistupovat k souborům a adresářům od kořene souborového systému. Samotné lomítko prostě znamená root, kořen. Všechny soubory a adresáře na počítači se dají zapsat cestou s lomítkem na začátku. Na Windows nic takového není, možná jakoby Plocha nebo Tento počítač, ale to jsou jenom takové divné náhražky rootu. Normální člověk pracující na Windows se s rootem zapsaným lomítkem moc nesetká, ale je dobré vědět, že to existuje. Na serveru se s tím totiž můžete setkat.

Root webu je trochu něco jiného. Když v HTML napíšu odkaz na adresu začínající lomítkem:

<a href="/">odkaz</a>

a dám tu stránku na web na nějakou doménu, tak tento odkaz vede do rootu (kořene) té domény. Takže kdyby takový kód byl umístěn například někde na doméně www.jakpsatweb.cz, tak odkaz bude mířit na adresu https://www.jakpsatweb.cz/.

Kdybych naopak napsal třeba odkaz

<a href="/directory/file.html">Odkaz</a>

a umístil takový odkaz někam na server (doménu) www.example.com, tak to bude stejné, jako kdybych odkaz namířil na URL

<a href="http://www.example.com/directory/file.html">Odkaz</a>

Ať už chápu root jako root webu nebo root počítače, zápis cesty s lomítkem na začátku je zápis absolutní adresy. Naopak pokud zápis cesty začíná jménem adresáře nebo rovnou jménem souboru, jde o cestu relativní, která se odvozuje z aktuálního adresáře.

Zápis odkazu s lomítkem na začátku se například dobře hodí v případě, že programujete webovou aplikaci, u které nevíte, na jaké doméně bude umístěna, ale potřebujete napsat absolutní odkaz.

Odkaz na doménu je lepší končit lomítkem

Když zapisujete odkaz na doménu, tak je lepší rovnou to rootovské lomítko za doménu psát. Server si to stejně doplní. Když třeba napíšu http://www.jakpsatweb.cz

tak si to stejně server přeloží na

http://www.jakpsatweb.cz/

-- kouká do výchozího adresáře -- takže je lepší rovnou to tam psát

Dvě lomítka jsou začátek sítě

Tomu už moc nerozumím, ale všimnul jsem si, že když se napíšou dvě lomítka //, znamená to začátek sítě. Samozřejmě se může jednat v různých situacích o různé sítě. Zápis //počítač nebo //{ip-adresa} obvykle míří na daný počítač v síti. Například //192.168.1.20 může být zápis adresy pro jeden z počítačů nějaké vnitřní sítě. Moc víc o tom nevím.

Na Windowsech někdy fungují jako začátek sítě dvě zpětná lomítka. Zdá se mi, že je v tom docela chaos, protože jindy mi fungují dvě obyčejná lomítka.

Dvojtečka

Dvojtečka se v zápisech cest k souborům používá tam, kde chci vyjádřit:

Například ve Windows se zápisem C: myslí disk C. V zásadě se jedná o adresář, a proto zápis zpravidla pokračuje lomítkem (a protože jsem ve Windows, tak zpětným): C:\..., ačkoli to lomítko tam z čistě formálního hlediska není potřeba.

Internetové protokoly se také ukončují dvojtečkou. Například http: je hypertextový přenosový protokol, ftp: je file transfer protocol,  https: je něco jako http:, ale se zabezpečeným přenosem. Protokol file: umožňuje přístup k souborům umístěným na lokálním počítači. Kromě klasických protokolů existují i pseudoprotokoly fungující jenom v prohlížečích (např. mailto:, about:, javascript: nebo view-source:).

Http server klasicky naslouchá na portu číslo 80. Server se dá nakonfigurovat tak, že bude také poslouchat na portu jiném. Pokud se v zápisu objeví www.example.com:1234, tak to znamená, že požadavek míří na port 1234. Používá se to málo, ale je dobré vědět, že to existuje. Já osobně portům moc nerozumím, ale jsem prostě zvyklý, že když tam píšu různá čísla, můžu dostávat různé výsledky.

Rozklad URL a adres

Je čas na jeden příklad URL, na kterém popíšu, co který znak znamená. Například tato stránka má následující URL adresu:

http://www.jakpsatweb.cz/clanky/lomitka-tecky.html

http: je protokol

// je začátek sítě

www.jakpsatweb.cz je hostname, z toho cz je doména nejvyšší úrovně, jakpsatweb je doména druhé úrovně a www je doména třetí úrovně.

/ je lomítko označující root serveru

clanky/ je jméno adresáře (složky).

lomitka-tecky.html je jméno souboru, z toho .html se dá chápat jako přípona označující typ.

Části za doménou (v tomto případě /clanky/lomitka-tecky.html) se říká cesta, anglicky path.

Příklady lokálních souborů

Dokud byl zmiňovaný soubor u mě doma na Linuxu, měl tuto adresu:

/home/yuhu/weby/jakpsatweb/clanky/lomitka-tecky.html

Vidíte počáteční lomítko označující root počítače. Za ním je spousta adresářů a nakonec jméno souboru.

Když s tímtéž souborem pracuju na windowsech, překopíruju si ho tak, že má tuto adresu:

D:\www\jakpsatweb\clanky\lomitka-tecky.html

Vidíte jméno disku ukončené lomítem (aby jako adresář), pár adresářů oddělených zpětnými lomítky (jsem na Windows) a nakonec jméno souboru.

Když se na tentýž soubor na ten disk podívám prohlížečem Firefox, v adresním řádku vidím toto:

file:///D:/www/jakpsatweb/clanky/lomitka-tecky.html

file: je protokol pro přístup k lokálním souborům

// je jako začátek sítě

/ je začátek struktury souborů

D:/ je pro Firefox virtuální adresář

dál je to jasné -- www/jakpsatweb/clanky/ je cesta dalšími adresáři a lomitka-tecky.html je jméno souboru. Vidíte, že Firefox si přepsal zpětná lomítka na obyčejná.

 

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í

Články Katalog zdrojů SEM SEO

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