Hlavička HTML (tag HEAD)

V tejto časti HTML tutoriálu sa pozrieme na to, ako čo najlepšie vyplniť hlavičku html dokumentu - tag head

V hlavičke HTML dokumentu sa nachádzajú všeobecné informácie o stránke, ktoré sa priamo nezobrazujú návštevníkom (nie sú viditeľné v prehliadači na rozdiel od obsahu stránky). Slúžia len pre webový prehliadač ako pomocné informácie pre spracovanie HTML dokumentu. Vedieť správne vytvoriť hlavičku pre HTML dokument je dôležité až vo fáze, keď sa chystáme web reálne nasadiť na internet a očakávame návštevníkov. Preto sa zvyčajne stačí s ňou oboznámiť až neskôr, keď už poznáme základy tvorby HTML stránok.

V hlavičke HTML dokumentu vieme zadefinovať napríklad:

  • Názov stránky (tag title)
  • Popis stránky a kľúčové slová v tagoch meta.
  • Informácie o autorovi stránky
  • Ikonku stránky, ktorá sa zobrazuje v lište (tzv. favicon)
  • Kódovanie stránky a znakovú sadu (angl. charset), teda či je stránka písaná v našej abecede alebo napr. v azbuke a pod.
  • Odkazy na externé zdroje (súbory s grafikou, písmo, skripty na počítanie návštevnosti a pod.)

Na ukážke nižšie je zjednodušená verzia hlavičky čiastočne prebraná z tohto webu, telo sme pre jednoduchosť nechali takmer prázdne.

<!DOCTYPE html>
<html lang="sk">
<head>
  <base href="https://www.eduself.sk/">
  <meta charset="utf-8">
  <meta name="keywords" content="html, tutoriál, vedomostné kvízy, testy">
  <meta name="description" content="Vedomostné kvízy na testovanie svojich vedomostí z HTML.">
  <meta name="author" content="web">
  <meta name="robots" content="follow,index">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="theme-color" content="#428bca">
  <title>Tutoriál HTML</title>
  <link rel="icon" type="image/png" sizes="192x192" href="https://www.eduself.sk/public/favicons/android-icon-192x192.png">
  <link rel="apple-touch-icon" sizes="180x180" href="https://www.eduself.sk/public/favicons/apple-icon-180x180.png">
  <link rel="stylesheet" type="text/css" href="https://www.eduself.sk/public/css/bs.css?v=2021">
  <link rel="alternate" type="application/rss+xml" title="RSS" href="https://www.eduself.sk/rss.php?v=2021">
</head>
<body>
  Vitajte na stránke :)
</body>
</html>

Jednotlivé elementy HTML hlavičky si teraz postupne vysvetlíme.

Tag base

Pomocou tagu base definujeme, ako sa majú v celom HTML dokumente správať hypertextové odkazy a linky na iné dokumenty (napr. obrázky). Keďže v rámci linkovania je výhodné využívať relatívne cesty, potrebujeme mať niekde zadefinovanú cestu k hlavnému priečinku. To je taký, v ktorom sa nachádzajú všetky dokumenty. Ak máme všetky dokumenty umiestnené na serveri s názvom www.eduself.sk/, je výhodné túto informáciu napísať len raz do hlavičky HTML dokumentu, a potom v tele dokumentu HTML už stačí používať len relatívnu cestu (cesta začínajúca za lomítkom).
Na nastavenie hlavnej URL slúži parameter href, a taktiež môžeme cez parameter target nastaviť preddefinovaný spôsob otvárania odkazov v celom dokumente.

Na ukážke nižšie vidíme, ako vyzerá odkaz vytvorený pomocou relatívnej adresy a ako vyzerá odkaz na stránku v podobe absolútnej adresy. Keďže v hlavičke sme tiež nastavili parameter target na _blank, všetky odkazy sa budú otvárať v novom okne.

<html lang="sk">
<head>
  <base href="https://www.eduself.sk/" target="_blank">
</head>
<body>
  <a href="trening">Odkaz na tréning pomocou relatívnej adresy</a>
  <br>
  <a href="https://www.eduself.sk/trening">Odkaz na tréning pomocou absolútnej adresy</a>
</body>
</html>

Meta tagy v hlavičke html

Asi najdôležitejšou časťou hlavičky HTML dokumentu sú metadáta (tiež nazývané ako metaúdaje). Metadáta sú dáta o dátach. To znamená, že sú to dáta, ktoré hovoria o tom, aké dáta sú v dokumente :)
Vieme si to predstaviť tak, že metadáta pomáhajú prehliadaču pochopiť, čo je na stránke aj bez toho, aby musel čítať telo dokumentu.

Metadáta sa uchovávajú v tagu meta, ktorý obsahuje atribúty name (pre názov dát), content (pre popis dát) a niekedy http-equiv (čo sú doplňujúce informácie pre protokol HTTP).
Opis najviac používaných metatagov v hlavičke HTML dokumentu uvádzame v zozname nižšie:

  • metatag s parametrom name=keywords: kľúčové slová pre stránku
  • metatag s parametrom name=description: krátky a stručný popis stránky (ideálne medzi 100 až 250 znakov)
  • metatag s parametrom name=author: autor stránky
  • metatag s parametrom name=robots: nastavenie pre internetové roboty (či majú stránku indexov a akým spôsobom)
  • metatag s parametrom name=theme-color: významná farba stránky (RGB kódy farieb nájdete v našej encyklopédii farieb )
  • metatag s parametrom name=viewport: zobrazovaná oblasť (návrh webu pre zariadenia s rôznou veľkosťou obrazovky)
  • metatag s parametrom http-equiv=content-type: MIME typ dokument, kódovanie dokumentu
  • metatag s parametrom http-equiv=refresh: ako často obnoviť obsah stránky (v sekundách).
  • metatag s parametrom http-equiv=expires: dátum a čas, kedy vyprší platnosť stránky
<meta name="keywords" content="HTML, tutoriál, kvízy">
<meta name="description" content="Tutoriál, pomocou ktorého sa naučíte vytvoriť jednoduchú stránku v jazyku HTML.">
<meta name="author" content="eduself.sk">
<meta name="robots" content="noindex, nofollow">
<meta name="theme-color" content="#428bca">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset = UTF-8">
<meta http-equiv="refresh" content="text/html; charset = UTF-8">
<meta http-equiv="refresh" content="100">
<meta http-equiv="expires" content="Mon, 15 Sep 2021 10:00:00 GMT">

Poznámka k HTML ukážke: ako ste si možno všimli z ukážky, po prepnutí do tabu "Ukážka" sa nezobrazí nič. Je to samozrejme preto, že v hlavičke nie je žiadny obsah, a preto sa nemá čo zobraziť :)

Presmerovanie pomocou hlavičky

V predchádzajúcom HTML kóde sme ukázali, ako nastaviť v hlavičke automatickú obnovu stránky po 100 sekundách (riadok 7). Tento tag sa často nepoužíva, keďže málokedy chceme pravidelne obnovovať obsah stránky v prehliadači. (Má to zmysel napríklad pri komentovaní online zápasov, ale dnes už na tento účel existujú modernejšie spôsoby, kedy nedochádza k obnove celej stránky, ale len časti ako napr. okna s výsledkom).
Tento metatag má však ešte jednu schopnosť: vieme na koniec pridať informáciu o URL adrese, ktorá sa má zobraziť po uplynutí času. To je výhodné, keď chceme používateľovi odkázať, že táto stránka už neexistuje, nová je na inej adrese a na túto adresu dôjde k presmerovaniu automaticky po 5 sekundách (v čase čítania týchto riadkov už je pravdepodobne načítaná nová adresa).

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Stránka je zmenená</title>
  <meta http-equiv="refresh" content="5;url=https://www.eduself.sk">
</head>
<body>
  <p>Táto stránka je už na novej adrese. Za chvíľu dôjde k presmerovaniu :)</p>
</body>
</html>

Poznámka k HTML ukážke: keďže v hlavičke stránky je nastavené presmerovanie na úvodnú stránku webu eduself.sk po 5 sekundách od načítania, tak pravdepodobne už vidíte web eduself.sk :)

Používanie metatagu pre roboty

Pomocou metatagu s názvom robots vieme určiť robotom, či majú obsah stránky indexovať a ako pristupovať k odkazom v rámci stránky.

<meta name="robots" content="noindex, nofollow">

Čo sú to webové roboty? Webový robot (niekedy aj bot) je systém, ktorý chodí automatizovane po webe (navštevuje rôzne URL adresy). Keď nájde v obsahu stránky nejaký odkaz, uloží si ho do zoznamu a neskôr navštívi aj ten. Nejde teda o skutočného návštevníka stránky, ale o naprogramovaný skript. Odhaduje sa, že viac ako jednu tretinu zobrazení stránky sú práve automatizované systémy, a nie reálny človek. Existuje viacero druhov robotov. Niektoré monitorujú web, iné sťahujú obsah. Ich cieľ je zvyčajne zistiť, čo sa na ktorých stránkach nachádza. Takéto roboty používajú napríklad vyhľadávače webov (robot Googlebot od firmy Google). Priebežne chodia na stránky, sťahujú si ich obsah k sebe a vďaka tomu je možné túto stránku nájsť vo vyhľadávači (napr. spomínaný vyhľadávač Google).

Základné hodnoty pre parameter robots sú:

index
povoliť indexovanie stránky
noindex
zakázať indexovanie stránky
follow
povoliť navštívenie odkazov
nofollow
zakázať navštívenie odkazov

Treba však spomenúť, že dodržiavanie odporúčaní pre roboty, ktoré sú uvedené v meta tagu, je na zvážení samotných systémov. Záleží ako sú naprogramované. Môže sa stať, že roboty nebudú tento tag zohľadňovať. Napríklad robot od firmy Google (tzv. Google Bot) sa zvykne riadiť samostatným súborom s názvom robots.txt, ktorý sa odporúča vložiť na server ku stránke. Viac informácií o robotoch firmy Google nájdete tu: robots

Odkazy na ďalšie zdroje (dokumenty)

Do hlavičky sa tiež vkladajú odkazy na ďalšie zdroje (súbory), ktoré sú potrebné pre korektné načítanie stránky alebo sú nejakým spôsobom dôležité pre túto stránku. Na to slúži tag link, ktorý môže mať niekoľko atribútov:

  • href cesta k súboru (URL)

  • type MIME typ súboru

  • rel vzťah HTML dokumentu k súboru, resp. význam tohto súboru pre stránku

  • sizes rozmery súboru, ak je to relevantné (môžeme mať viac rovnakých súborov a pre každé rozlíšenie inú verziu)

  • hreflang jazyk

  • a niekoľko ďalších

Atribútom rel (ktorý je povinný) určujeme, aký je vzťah medzi linkovaným a aktuálnym dokumentom. Zariadenie podľa toho vie, či má tento dokument tiež siahnuť. Možností máme veľa, uvedieme len tie najčastejšie používané.

<link rel="stylesheet" type="text/css" href="https://www.eduself.sk/public/css/bs.css?v=202106a">
<link rel="stylesheet" type="text/css" href="public/css/style_main.css?20204b">
<link rel="apple-touch-icon" sizes="180x180" href="https://www.eduself.sk/public/favicons/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="https://www.eduself.sk/public/favicons/android-icon-192x192.png">
<link rel="alternate" type="application/rss+xml" title="RSS: eduself.sk" href="https://www.eduself.sk/rss.php" />
Hodnota atribútu relvysvetlenie
icon | favicon | shortcut icon Ikonky, ktoré sa zobrazujú napr. v lište, po stiahnutí obsahu na disk a pod.
stylesheet odkaz na CSS súbor pre štýlovanie HTML dokumentu
alternate Odkaz na alternatívny dokument (napr. RSS export pre čítačky, alebo verzia obsahu v inom jazyku, alebo verzia pre tlač).
next | prev Odkaz na nasledujúcu (next) resp. predchádzajúcu (prev) stránku. Toto sa používa vtedy, keď máte na stránke vlastné stránkovanie (obsah rozdelený na viac podstránok).
canonical kanonická URL adresa - adresa, ktorou sa viete vyhnúť duplicitám (ak máte duplicitné adresy, ich kanonická adresa by mala byť rovnaká)
author odkaz na autora (jeho stránku)
preload označenie, že tento dokument sa musí načítať predtým, ako sa načíta stránka
help odkaz pre nápoveď

V hlavičke HTML dokumentu tiež nájdeme...

Informácií sa do hlavičky HTML stránky zmestí veľa. Zvyknú sa tam dávať aj odkazy na písma (fonty) alebo odkazy na skripty (javascriptové súbory). O tomto sa vedú často spory medzi programátormi, či je vhodné takéto súbory dávať hneď do hlavičky alebo až na koniec HTML dokumentu.
To, čo je v hlavičke, sa zvyčajne načíta skôr ako obsah stránky. Mnohí vývojári webových stránok preto dávajú menej dôležité skripty (ako načítanie reklám, zobrazenie lišty o súboroch cookie či uloženie návštevy do štatistík) až na koniec HTML stránky, aby sa najskôr načítal obsah. Avšak, keď sú tieto skripty potrebné pre chod stránky, potom sa môže stať, že stránka síce bude načítaná rýchlejšie, ale niektoré jej časti budú fungovať až po doťahaní ostatných zdrojov. Môžeme si to všimnúť napríklad vtedy, keď sa stránka načíta s nejakým typom písma a až keď sa stiahne súbor s písmom, tak sa potom typ písma zmení. Takáto zmena počas čítania môže pôsobiť rušivo. Rovnako, keď sa reklama načíta až dodatočne a posunie obsah článku. Tieto javy začínajú byť zo strany vyhľadávačov a hodnotiteľov kvality webov penalizované.

Zhrnutie tutoriálu o hlavičke HTML dokumentu

V tejto kapitole HTML tutoriálu sme sa naučili, na čo slúži hlavička HTML dokumentu, a že v nej môžeme nájsť napríklad:

  • Titulok webovej stránky

  • Informácie o kódovaní webovej stránky, jazyku stránky, dátumu exspirácie...

  • Meta informácie o webovej stránke: kľúčové slová, popis stránky, meno autora ...

  • Informácie pre webové roboty, najmä ako majú pristupovať k indexovaniu vašej webovej stránky

  • Odkazy na ďalšie relevantné dokumenty potrebné pre webovú stránku a jej korektné zobrazenie, napríklad:

    • Odkazy na súbory CSS

    • Odkazy na alternatívne jazykové verzie stránky

    • Odkazy na alternatívne verzie ako RSS feed alebo verziu pre tlač stránky