Jazyk HTML verze 2.0


Značky

Struktura hypertextového dokumentu je definována značkami jazyka HTML. Značky začínají vždy znakem `<` (menší než) a končí znakem `>` (větší než). Jméno značky musí následovat bezprostředně za znakem menší než a není u něj rozlišováno mezi malými a velkými písmeny:
<P> je ekvivalentní <p>
<Head>, <HEAD> a <head > jsou stejné značky
< head > není značka (mezera za <)
Některé značky jsou párové a po úvodní značce musí následovat uzavírací značka se stejným jménem, ale s vloženým znakem lomítko před jméno značky:
<HEAD>Toto je hlavička</HEAD>
Párové značky vymezují typ části dokumentu. U mnoha párových značek je povoleno vypustit uzavírací značku, pokud lze rozpoznat konec vymezeného textu, například podle začátku další značky. Příkladem takových značek jsou <P>, <LI>, <DD>, <DT>, apod. Přesná pravidla, kdy je možno vypustit u párových značek ukončující značku, jsou uvedena v definici DTD jazyka HTML. Části textu vymezené párovými značkami se nesmí protínat:
<A HREF="dot.gif">Tento hypertextový <B>odkaz</A> je špatně</B>
Značky mohou obsahovat atributy, které definují charakteristiku značky. Atributy jsou zadávány jménem a hodnotou atributu. U jména atributu se nerozlišuje mezi malými a velkými písmeny. Hodnotou atributu je řetězec. Řetězec hodnoty atributu je vymezen apostrofy nebo uvozovkami:
<IMG SRC="/images/work.gif" ALT='icon work in progress'>
Tato značka IMG má dva atributy: SRC a ALT. Hodnotou atributu SRC je řetězec "/images/work.gif". Možnost vymezení hodnoty atributu apostrofy je definována ve standardu jazyka HTML, ale některé starší nástroje a prohlížeče to nemusí zvládat. Některé atributy mají omezenou množinu hodnot, mohou nabývat pouze hodnot z definovaného výčtu. Příkladem může být atribut ALIGN, který může nabývat hodnot "TOP", "MIDDLE" nebo "BOTTOM". Pokud obsahuje hodnota atributu pouze písmena, číslice, znaky tečku a mínus, pak nemusí být uzavřena v apostrofech nebo uvozovkách. Obě výše uvedené hodnoty atributů uvozovky nebo apostrofy vyžadují, protože obsahují jiné znaky (lomítko, mezeru). U atributů, jejichž hodnotou je jméno atributu, je povoleno vypustit také hodnotu atributu:
<IMG SRC="map.gif" ALT='clickable image' ISMAP>
Uvedený atribut ISMAP má plný tvar ISMAP="ISMAP" (některé starší prohlížeče ovšem tomuto plnému tvaru nerozumí). Pokud má hodnota atributu nebo text mezi dvěma značkami obsahovat znak, který je použit pro zápis značek, je třeba použít znakového literálu:

&lt; má význam <
&gt; má význam >
&quot; má význam "
&amp; má význam &
V dokumentu mohou být vloženy komentáře, které prohlížeč nezobrazuje. Komentář začíná znaky <!, za nimiž následuje text komentáře vymezený párovou značkou --. Textů komentáře může být libovolný počet, včetně prázdného. Mezi komentářovými texty může být libovolný počet prázdných znaků. Celý komentář je ukončen uzavíracím znakem značky `>`:

<!>
<!-- jeden komentář -->
<!-- první komentář --    -- druhý komentář -->
<!-- toto není -- správný komentář -->
Poslední komentář v příkladu není správně zapsaným komentářem, protože neobsahuje párové dvojice znaků --. Speciální postavení má řetězec, který obsahuje za znaky <! jiné znaky než mínus nebo ukončující závorku. Takový řetězec je chápan jako příkaz systému SGML. Standard jazyka HTML definuje jediný příkaz DOCTYPE, kterým by měl začínat každý dokument v jazyce HTML:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN//">
Tento příkaz definuje typ dokumentu v systému SGML odkazem na zaregistrovanou definici typu dokumentu (DTD) HTML verze 2.0. Za číslem verze jazyka (2.0) může následovat parametr STRICT, který deklaruje formálně striktnější zápis, a parametr LEVEL, který definuje použitou úroveň jazyka. Standard definuje dvě úrovně jazyka, úroveň 1, která neobsahuje zápis formulářů, a úroveň 2, která je plnou verzí jazyka. Pokud není úroveň specifikována, uvažuje se implicitně plná verze úrovně 2. Pokud dokument neobsahuje formuláře, může začínat deklarací:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Level 1//EN//">

Struktura dokumentu

Hypertextový dokument obsahuje jeden blok HTML. Blok HTML obsahuje jednu hlavičku (HEAD) a jedno tělo (BODY). Úplný tvar nejjednoduššího dokumentu tedy je:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN//">
<HTML>
<HEAD>
<TITLE>Toto je titulek dokumentu</TITLE>
</HEAD>
<BODY>
<H1>Toto je nadpis dokumentu</H1>
Toto je tělo dokumentu
</BODY>
</HTML>
Hlavička dokumentu musí vždy obsahovat titulek dokumentu vymezený značkami <TITLE> a </TITLE>. Titulek dokumentu je text, který není součástí dokumentu, ale slouží pro identifikaci obsahu dokumentu. Obvykle je zobrazen v rámečku okna prohlížeče a prohlížeče jej také vypisují v historii procházených stránek. Titulek by proto měl být krátký, ale výstižný. Značky vymezující blok HTML, hlavičku a tělo mohou být vypuštěny. Minimální verze stejného dokumentu má tvar:
<TITLE>Toto je titulek dokumentu</TITLE>
<H1>Toto je nadpis dokumentu</H1>
Toto je tělo dokumentu
Úplné vypuštění všech těchto značek není rozumné, protože tyto značky jednak formálně definují strukturu dokumentu, jedna lze podle nich snadno poznat, zda část dokumentu neschází.

Hlavička dokumentu

Hlavička dokumentu musí obsahovat alespoň titulek dokumentu (TITLE). Nepovinnými částmi jsou adresa umístění dokumentu (BASE), pokyn pro indexování (ISINDEX), odkazy (LINK) a metainformace (META).

BASE

Adresa umístění dokumentu je důležitá v okamžiku, kdy může klient získat jeden a tentýž dokument pod různými URL. To nastane v případě, že použijeme v adresářové struktuře dokumentů serveru WWW symbolické nebo přímé odkazy. Jeden dokument tak může vystupovat pod různými jmény v různých adresářích. Pokud takovýto dokument obsahuje relativní odkazy, bude jejich zpracování záviset na tom, pod jakým URL byl dokument získán. Pokud má relativní odkaz vždy začínat od stejného místa primárního umístění dokumentu, musí dokument obsahovat v hlavičce značku BASE s atributem HREF:

<HEAD>
<TITLE>Toto je titulek dokumentu</TITLE>
<BASE HREF="/info/document.html">
</HEAD>
Hodnotou atributu HREF musí být v tomto případě absolutní URL umístění dokumentu.

ISINDEX

Značka ISINDEX oznamuje, že prohlížeč by měl uživateli nabídnout možnost hledání klíčových slov v indexu. Pokud uživatel zadá klíčová slova, prohlížeč by měl požádat o dokument, jehož URL je tvořeno původním URL doplněným znakem ? a klíčovými slovy, oddělenými znakem +. Například, pokud dokument, jehož URL je "http://www/doc", obsahuje v hlavičce element ISINDEX a uživatel zadá hesla "auto" a "vlak", prohlížeč požádá o dokument, jehož URL je "http://www/doc?auto+vlak".

LINK

Značka LINK dovoluje uvést v hlavičce hypertextové odkazy. Význam těchto odkazů není zatím definován. V jazyce HTML verze 3.0 mohou směrovat například na definici stylu dokumentu. Dalším návrhem je zavedení odkazu na adresu autora dokumentu ve tvaru:
<LINK REV="made" HREF="mailto:...">

META

Značka META dovoluje zadávat doplňující informace o dokumentu. Zatím je definován jediný atribut, a to HTTP-EQUIV. Tento atribut umožňuje zadat hlavičky, které má server zaslat klientovi při přenosu dokumentu. Jméno zaslané hlavičky je definováno atributem NAME a obsah hlavičky atributem CONTENT. Hodnotu atributu NAME lze také zadat přímo jako hodnotu atributu HTTP-EQUIV. Příkladem použití je doplnění jména kódu do hlavičky označující typ dokumentu (pokud to neumí server automaticky):
<HEAD>
<TITLE>Toto je titulek dokumentu</TITLE>
<META HTTP-EQUIV="Content-Type" 
      CONTENT="text/html; charset=ISO-8859-2">
</HEAD>
Většina serverů tento atribut neinterpretuje a tak zatím jediné použití je ve spojení s prohlížečem Netscape, který interpretuje tento atribut na straně klienta.

Tělo dokumentu

Tělo dokumentu se skládá z libovolného počtu nadpisů, odstavců, seznamů a dalších bloků textu.

Nadpisy

Jazyk HTML dovoluje použít v dokumentu až 6 úrovní nadpisů, vyznačených párovými značkami <H1> až <H6>. Hierarchie použití není sice formálně omezena, ale je doporučeno začínat dokument vždy nadpisem úrovně 1 a nepřeskakovat nižší úrovně. U dokumentů s vynechanými úrovněmi nadpisů může být obtížná konverze do jiného formátu a automatizované zpracování některými nástroji. Způsob zobrazení nadpisů různých úrovní závisí na prohlížeči a autor dokumentu jej nemůže přímo ovlivnit. To je také důvodem, proč jsou u vyvíjeného jazyka HTML verze 3.0 zavedeny styly dokumentů, ve kterých lze definovat způsob zobrazení. Nadpis úrovně 1 by měl následovat bezprostředně po začátku těla dokumentu:
<BODY>
<H1>Toto je nadpis dokumentu</H1>
Toto je tělo dokumentu
</BODY>
Příklad zobrazení tohoto textu prohlížečem:

Toto je nadpis dokumentu

Toto je tělo dokumentu

Odstavce textu

Odstavce textu jsou vymezeny párovými značkami <P>. Ukončující značka nemusí být uvedena, protože odstavec je vždy ukončen začátkem dalšího bloku textu:
<BODY>
<H1>Toto je nadpis dokumentu</H1>
<P>První odstavec</P>
<P>Ukončující značka nemusí být uvedena
<P>Toto je třetí odstavec.
Konce řádků     a          mezery jsou ignorovány.
</BODY>
Příklad zobrazení tohoto textu prohlížečem:

Toto je nadpis dokumentu

První odstavec

Ukončující značka nemusí být uvedena

Toto je třetí odstavec. Konce řádků a mezery jsou ignorovány.


Konce řádků nejsou zachovány, text je naformátován podle aktuální šířky okna prohlížeče. Odstavce jsou zobrazeny s vertikálním oddělením a první řádek odstavce je obvykle odsazen. Rovněž jsou vypuštěny všechny nadbytečné mezery a prázdné řádky. Pro zalomení řádku (vložení konce řádku při zobrazení) je určena značka <BR> (Line Break). Oddělení odstavců může být zvýrazněno horizontálním oddělovačem, značkou <HR> (Horizontal Rule).

Speciální typy odstavců

Kromě normálních odstavců rozeznává jazyk HTML několik speciálních druhů odstavců: citace, adresa a předformátovaný text. Odstavec typu citace je vymezen párovou značkou <BLOCKQUOTE>. Text odstavce je obvykle zobrazen odsazeně a vertikálně oddělený od ostatního textu. Odstavec textu typu adresa je vymezen párovou značkou <ADDRESS>. Text vymezený touto párovou značkou je obvykle zobrazen kurzívou:
<BODY>
<H1>Příklad speciálních typů bloku textu</H1>
<BLOCKQUOTE>Blok citace</BLOCKQUOTE>
<ADDRESS>
Poslední změna: 2. února 1996<BR>
Autor: <A HREF="mailto:www@fuk.vutbr.cz">www@fuk.vutbr.cz</A>
</ADDRESS>
</BODY>
Příklad zobrazení tohoto textu prohlížečem:

Příklad speciálních typů bloku textu

Blok citace
Poslední změna: 2. února 1996
Autor: www@fuk.vutbr.cz

Uvedený příklad je doporučeným použitím odstavce typu adresa. Každý dokument by měl mít na konci identifikaci autora v odstavci typu adresa. Text by měl obsahovat jméno autora, kontakt na něj, obvykle ve formě URL a datum poslední změny dokumentu.

Předformátované odstavce jsou na rozdíl od ostatního textu zobrazeny neproporcionálním písmem se zachováním rozložení řádků. Jsou definovány typy odstavců předformátovaný text (PRE), příklad (XMP) a výpis programu (LISTING). Odstavec typu předformátovaný text může obsahovat hypertextové odkazy a typografické značky, zatímco ostatní nemohou obsahovat žádné značky, kromě značky ukončující blok. Všechny tyto typy odstavců musí být vždy vymezeny párem značek.

<PRE>
předformátovaný text <b>tučně</b>
#include <stdio.h>
</PRE>
<XMP>
příklad  <b>tučně</b>
#include <stdio.h>	/* zde nemá význam <xxx> značky HTML */
</XMP>
<LISTING>
výpis programu <b>tučně</b>
#include <stdio.h>	/* zde nemá význam <xxx> značky HTML */
</LISTING>
Příklad zobrazení tohoto textu prohlížečem:
předformátovaný text tučně
#include 
příklad <b>tučně</b> #include <stdio.h> /* zde nemá význam <xxx> značky HTML */ výpis programu tučně #include /* zde nemá význam značky HTML */
Značka <PRE> může mít uveden atribut WIDTH, který deklaruje maximální délku řádku předformátovaného textu. Prohlížeč může podle této délky zvolit vhodnou velikost písma tak, aby byl text zobrazen ve viditelné části okna prohlížeče. Odstavce textu typu příklad a výpis programu jsou historickými pozůstatky a je doporučeno je nepoužívat. Některé prohlížeče je navíc interpretují nesprávně (např. Netscape).

Seznamy

Seznamy mohou být číslované (OL), nečíslované (UL), definiční (DL), adresářové (DIR) a menu (MENU). Seznam je vymezen párovými značkami určujícími typ seznamu. S výjimkou MENU a DIR mohou být seznamy zanořené.
<OL>
<LI>první bod
<LI>druhý bod
</OL>
<UL>
<LI>první bod
<LI>druhý bod
</UL>
Příklad zobrazení tohoto textu prohlížečem:
  1. první bod
  2. druhý bod

Číslované a nečíslované seznamy vypadají podobně. Položky seznamu jsou zobrazeny odsazeně s odrážkou nebo číslem položky. Položky seznamu jsou v textu vymezeny párovými značkami <LI>:

Ukončující značky </LI> položek seznamu mohou být vypuštěny, protože konec položky je rozpoznatelný ze značky začátku další. Ukončující značka seznamu naopak vypuštěna nesmí být, protože by zůstal seznam neukončený a veškerý následující text by byl považován za součást poslední položky seznamu.

<DL>
<DT>Termín
<DD>definice termínu, odsazená zleva
</DL>
Příklad zobrazení tohoto textu prohlížečem:
Termín
definice termínu, odsazená zleva

Seznam definic dovoluje zadat jako odrážku libovolný text - definovaný termín. Následující text tvoří definici termínu a je zobrazen odsazeně. Definice termínu může mít více řádků. Jméno definovaného termínu je vymezeno párem značek <DT> a text definice párem značek <DD>:

Ukončující značky termínu a definice mohou být vypuštěny podobně jako u nečíslovaných seznamů. Termíny a definice by měly být vždy ve dvojicích. Výjimkou je možnost uvést několik termínů (několik bloků <DT>) s jediným textem definice. Pro vložení svislého odsazení v definici lze použít značku <BR> nebo <P>. Značka <DL> má volitelný atribut COMPACT, který určuje kompaktnější zobrazení seznamu. Obvykle způsobí vypuštění vertikálních mezer mezi definicí a textem, případně zmenšení šířky sloupce termínů.

Poslední dva typy seznamů jsou kompaktnějšími formami nečíslovaných seznamů. Seznam menu je určen pro zobrazení jednořádkových položek. Adresářový seznam je určen pro zobrazení krátkých položek do 20 znaků. Položky by měly být zobrazeny ve sloupcích, podobně jako sloupcový výpis obsahu adresáře.

<MENU>
<LI>první bod
<LI>druhý bod
</MENU>
<DIR>
<LI>první bod
<LI>druhý bod
</DIR>
Oba tyto typy seznamů zobrazují běžné prohlížeče stejně jako nečíslované seznamy:
  • první bod
  • druhý bod
  • první bod
  • druhý bod

  • Formátování na úrovni znaků

    Značkami pro formátování textu na úrovni znaků může být vymezena část textu, která má být zobrazena odlišně od ostatního textu v odstavci. Formátování textu může být zadáno logicky nebo typograficky. Logické značky definují význam vyznačeného textu a tím nepřímo jeho zobrazení. Typografická značky definují přímo požadovaný typ zobrazení, například zobrazení kurzívou. Z hlediska konzistence a návaznosti na další zpracování by měly být preferovány logické značky.

    Logické značky
    Značka Zobrazení Význam
    <CITE>Systém WWW</CITE> Systém WWW citace
    <CODE>x = a + i*b</CODE> x = a + i*b kód programu
    <EM>nelze</EM>nelze zdůraznění
    <KBD>rm abc</KBD>rm abc vstup uživatele
    <SAMP>XmNwidth</SAMP> XmNwidth výpis, konstanta
    <STRONG>nikdy</STRONG>nikdy silné zdůraznění
    <VAR>filename</VAR>filename proměnná

    Typografické značky
    Značka Zobrazení
    <B>tučně</B> tučně
    <I>kurzíva</I> kurzíva
    <TT>neproporcionálně</TT> neproporcionálně

    Hypertextové odkazy

    Značka <A> je vlastně tou, která činí z dokumentů hypertextové dokumenty. Vymezuje část textu, která tvoří hypertextový odkaz. Prohlížeč tento text zvýrazní a uživatel může sledovat odkaz aktivací zvýrazněného textu stisknutím tlačítka myši. Značka <A> má celou řadu atributů, z nichž je nejpodstatnější atribut HREF. Jeho hodnotou je URL dokumentu, na který hypertextový odkaz vede:
    <A HREF="http://www.server.net/dokument">Toto je hypertextový odkaz</A><p>
    <A HREF="/images/boz.gif">Toto je odkaz na obrázek</A>
    
    Pokud je URL odkazu relativní, doplní prohlížeč chybějící části při použití z URL zobrazovaného dokumentu nebo z jeho bázového URL v hlavičce (viz značka <BASE>). Odkaz nemusí směřovat pouze na hypertextové dokumenty, může adresovat libovolnou informaci, lokalizovatelnou pomocí URL. Odkazy mohou také vést na text uvnitř hypertextového dokumentu. Cíl musí být pojmenován značkou <A> s uvedeným atributem NAME. Jméno cíle musí obsahovat jako první znak mříž (#):
    Více viz <A HREF="#hlava2">kapitola 2</A>.
    ...
    <H2><A NAME="hlava2">Kapitola 2</A></H2>
    
    U jména cíle je třeba dát pozor na vymezení jména cíle. Značka musí vymezovat holý text, nemůže vymezovat označený blok textu. Pořadí značek <A><H2>...</H2></A> je tedy chybné, protože značka <A> vymezuje blok textu typu nadpis. Další atributy odkazů, jako jsou REL (vztah), REV (opačný vztah), TITLE (nadpis), URN (jméno) a METHODS (metoda aktivace) zatím nejsou přesně specifikovány, nebo nejsou prohlížeči interpretovány.

    Vložené obrázky

    Do textu dokumentu mohou být vloženy obrázky značkou <IMG>. Jméno vloženého obrázku je zadáno hodnotou atributu SRC a může jím být obecná specifikace URL. Grafické prohlížeče umí obvykle zobrazovat obrázky ve formátu XBM (X Window Bitmap), GIF a JPEG. Vzhledem k patentovým problémům s formátem GIF byl navržen nový formát pro ukládání barevných obrázků bez ztráty kvality - PNG (Portable Network Graphic). Tento formát by měl postupně nahradit formát GIF, ale zatím není příliš podporován.

    Protože negrafické prohlížeče nezvládají zobrazení textu s vloženými obrázky, ale mohou umět zobrazit samostatný obrázek, je třeba uvážit, zda je obrázek pouze zpestřením textu, nebo má důležitou informační hodnotu. Pokud má informační hodnotu, je vhodnější použití hypertextového odkazu na obrázek (značku <A>). V každém případě by měla značka <IMG> obsahovat atribut ALT, který definuje náhradní text, vypsaný v případě, že prohlížeč není schopen zobrazit vložený obrázek:

    <IMG SRC="/images/under.gif" ALT="obrázek zde se pracuje">
    
    Značka <IMG> může obsahovat atribut ALIGN definující zarovnání bloku textu, který následuje za vloženým obrázkem. V jazyce HTML verze 2.0 to může být pouze jednořádkový text, který bude zobrazen vpravo vedle vloženého obrázku. Atributem ALIGN je definováno vertikální zarovnání: na horní okraj obrázku (TOP), doprostřed (MIDDLE) nebo na dolní okraj (BOTTOM). Protože u delšího textu je při zarovnání TOP a MIDDLE řádek zalomen nepřirozeně, musí být text krátký.
    <IMG SRC="/images/undercon.gif" align="top">Text vpravo nahoře<BR>
    Text pod obrázkem
    
    Příklad zobrazení tohoto textu prohlížečem:
    Text vpravo nahoře
    Text pod obrázkem
    Zarovnání víceřádkového textu vedle obrázku je definováno až v jazyce HTML verze 3.0. Vložený obrázek může být současně aktivující plochou hypertextového odkazu. Pokud obsahuje značka <IMG> atribut ISMAP a je umístěna uvnitř hypertextového odkazu, tvoří vložený obrázek aktivační plochu sady hypertextových odkazů. Volba konkrétního odkazu závisí na místě "stisknutí". Při stisknutí tlačítka myši nad vloženým obrázkem doplní prohlížeč URL hypertextového odkazu o otazník (?) a relativní pozici grafického kurzoru vzhledem k levému hornímu rohu obrázku v okamžiku, kdy uživatel stisknul tlačítko. Příklad:
    <A HREF="http://www/cgi-bin/imagemap"><IMG ISMAP HREF="image.gif"></A>
    
    Pokud stiskne uživatel tlačítko myši na pozici (20,10) od levého horního rohu obrázku, povede odkaz na URL "http://www/cgi-bin/imagemap?20,10". Převod místa aktivace na URL aktivovaného hypertextového odkazu musí zajistit program na straně serveru (například zde uvedený imagemap). Seznam odkazů a aktivační plochy obrázku musí být uvedeny mimo dokument. Konkrétní postup závisí na konfiguraci a typu serveru. Takovéto vložené obrázky jsou nazývány citlivými obrázky (clickable images) a slouží pro grafické zadávání hypertextových odkazů.

    Formuláře

    Formuláře slouží pro zadávání dat uživatelem a jejich následné zpracování. Formulář obsahuje vstupní pole, tlačítka a doprovodný text. Uživatel může vyplnit vstupní pole a aktivovat formulář tlačítkem. Prohlížeč zakóduje zadaná data a aktivuje URL, které je zapsáno ve formuláři. Toto URL obvykle vede na spuštění programu na straně serveru, kterému server předá zadaná data.

    Příklad:

    Formulář obsahuje vstupní textové pole se jménem ADRESA. Po vyplnění má být aktivován program, jehož URL je "http://www.fit.vutbr.cz/cgi-bin/printenv". Uživatel vyplní formulář a stiskne aktivující tlačítko. Prohlížeč zakóduje data zadaná uživatelem a zašle požadavek GET serveru http na adrese www.fit.vutbr.cz. Server interpretuje URL a konfiguračně závislým způsobem zjistí, že vede na spuštění programu. Spustí určený program a předá mu data zadaná uživatelem v proměnné prostředí QUERY_STRING ve tvaru ADRESA=hodnota. Program zpracuje data a vygeneruje odpověď, kterou server odešle zpět prohlížeči jako odpověď na požadavek GET, a ten ji zobrazí.

    Zápis formuláře

    Formulář je vymezen značkou <FORM>. Může obsahovat libovolné bloky textu a navíc vstupní pole a tlačítka. Úvodní značka musí mít zadán atribut ACTION, který určuje URL aktivované pro zpracování formuláře. Toto URL vede obvykle na spuštění programu nebo skriptu na straně serveru. Server interpretuje počátek URL jako jméno spouštěného programu a zbytek adresářové cesty za jménem programu předá programu v proměnné prostředí (QUERY_STRING). Jméno programu může být skryto v cestě a z formy odkazu nemusí být na první pohled rozpoznatelné, že se jedná o odkaz na program.

    Zpracování formuláře

    Formulář může vést na zpracování požadavkem GET nebo POST. Pokud má zpracování formuláře za následek nějakou změnu ve stavu serveru, měl by být formulář zpracován požadavkem POST. Typ požadavku je určen atributem METHOD. Pokud není tento atribut zadán, je formulář zpracován požadavkem GET. Při zpracování požadavkem GET jsou data zadaná uživatelem předávána v doplňku aktivovaného URL. Na konec URL z atributu ACTION je doplněn otazník (?) a postupně hodnoty všech vstupních polí ve tvaru "jméno_pole=hodnota" oddělené znakem ampersand (&). Mezery jsou nahrazeny znakem plus (+) a všechny ostatní znaky v textu polí, které mají v URL speciální význam, jsou nahrazeny hexadecimální hodnotou ve tvaru %HH.

    Při zpracování požadavkem POST jsou data předána v těle požadavku. Způsob zakódování dat je dán atributem ENCTYPE značky <FORM>. Implicitně je použito kódování "application/x-www-form-urlencoded", které odpovídá popsanému kódování zadaných dat jako doplňku URL:

    POST http://www.fit.vutbr.cz/cgi-bin/printenv HTTP/1.0	       
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 40
    
    Typ=Objednavka+hamburgeru&Adresa=nejaka+adresa&Hranolky=ano
    
    

    Vstupní pole

    Vstupní pole jsou ve formuláři vymezena značkami vstupního pole <INPUT>, výběru z nabídky <SELECT> nebo textového pole <TEXTAREA>. Typ vstupního pole <INPUT> je dán atributem TYPE. Vstupní pole může být typu řádek textu (TEXT), text bez zobrazení psaných znaků (PASSWORD), zaškrtávací tlačítko (CHECKBOX), vázané tlačítko (RADIO), vložený obrázek (IMAGE) nebo skryté pole (HIDDEN). Kromě vstupních polí je definováno tlačítko pro obnovení počátečních hodnot polí (RESET) a aktivující tlačítko (SUBMIT). Každý formulář by měl obsahovat minimálně jedno vstupní pole a aktivující tlačítko. Všechny typy vstupních polí musí mít uveden atribut NAME definující jméno pole. Toto jméno označuje pole a je předáno společně s hodnotou pole při aktivaci zpracování formuláře.

    Textové pole

    Textové pole je implicitním typem vstupního pole, pokud není uveden atribut TYPE. Textové pole může být jednořádkové (TEXT, PASSWORD) nebo víceřádkové (TEXTAREA). Jednořádkové textové pole má obvykle zobrazeno 20 znaků. Jiná délka zobrazené části může být nastavena atributem SIZE. Maximální délka zadaného textu je nastavitelná atributem MAXLENGTH. Pokud je maximální délka větší než délka zobrazené části, musí prohlížeč dovolit horizontální posun textu. Počáteční hodnota jednořádkového vstupního pole je dána hodnotou atributu VALUE.

    Víceřádkové vstupní pole není zadáno značkou <INPUT>, ale speciální značkou <TEXTAREA>. Tato značka je párová. Text vymezený touto značkou tvoří počáteční hodnotu vstupního pole. Počet řádků je určen atributem ROWS a počet sloupců atributem COLS:

    <FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET>
    Adresa: <INPUT TYPE=TEXT NAME=Adresa SIZE=20><BR>
    Heslo: <INPUT TYPE=PASSWORD NAME=Heslo SIZE=20><BR>
    Text: <TEXTAREA NAME=Text COLS=20 ROWS=4>
    Toto je počáteční hodnota víceřádkového textu.
    </TEXTAREA><BR>
    Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT>
    </FORM>
    
    Příklad zobrazení formuláře prohlížečem:
    Adresa:
    Heslo:
    Text:
    Stiskni zde pro odeslání:

    Zaškrtávací a vázaná tlačítka

    Zaškrtávací tlačítka jsou nezávislá tlačítka, která může uživatel zmáčknout nebo uvolnit. Vázaná tlačítka jsou tlačítka, u kterých může být zamáčknuto pouze jedno tlačítko ze skupiny vázaných tlačítek. Vazba tlačítek je dána jménem vstupního pole (NAME). Vzájemně vázaná tlačítka mají stejné jméno pole. Hodnota, která je zaslána v případě, že uživatel tlačítko zmáčkne nebo vybere, je dána atributem VALUE.. Tlačítka mohou mít navíc uveden atribut CHECKED, který nastaví tlačítko počátečně jako zmáčknuté:
    <FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET>
    Hranolky: <INPUT TYPE=CHECKBOX NAME=Hranolky VALUE=ano><BR>
    Hamburger: <INPUT TYPE=RADIO NAME=Hamburger VALUE=maly>malý
    <INPUT TYPE=RADIO NAME=Hamburger VALUE=velky CHECKED>velký<BR>
    Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT>
    </FORM>
    
    Příklad zobrazení formuláře prohlížečem:
    Hranolky:
    Hamburger: malý velký
    Stiskni zde pro odeslání:

    Speciální tlačítka

    Speciální tlačítka SUBMIT a RESET nemají žádnou hodnotu. Tlačítko SUBMIT aktivuje zpracování formuláře. Tlačítko RESET obnovuje nastavení počátečních hodnot polí. Tato tlačítka mají implicitně popis daný programem nebo konfigurací prohlížeče. Popis tlačítka lze změnit atributem VALUE:
    <FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET>
    Adresa: <INPUT TYPE=TEXT NAME=Adresa SIZE=20><BR>
    Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT VALUE=Send><BR>
    Obnovení počátečních hodnot: <INPUT TYPE=RESET VALUE=Default>
    </FORM>
    
    Příklad zobrazení formuláře prohlížečem:
    Adresa:
    Stiskni zde pro odeslání:
    Obnovení počátečních hodnot:

    Výběr z nabídky

    Výběr z nabídky je pole, které dovoluje uživateli zadat jednu nebo více položek ze zobrazeného seznamu. Doporučené zobrazení závisí možnosti vybrat více položek. Pokud je povoleno vybrat pouze jednu, je v poli zobrazena zvolená položka a tlačítko pro zobrazení seznamu položek. Nabídka položek tak nezabírá prostor. Uživatel si může nechat zobrazit seznam stisknutím aktivujícího tlačítka seznamu. Pokud je povoleno vybrat více položek seznamu současně, je zobrazen celý seznam a vybrané položky jsou zvýrazněny. Pokud je seznam příliš dlouhý, měl by prohlížeč zobrazit jen část seznamu a dovolit vertikální posun seznamu pomocnými tlačítky.

    Seznam položek je vymezen párovou značkou <SELECT>. Jméno seznamu je zadáno atributem NAME podobně jako u vstupních polí. Pokud obsahuje úvodní značka atribut MULTIPLE, jedná se o seznam s povoleným výběrem více položek současně. Hodnoty položek seznamu jsou zadány textem, vymezeným značkou párovou <OPTION>:

    <FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET>
    Nápoj:
    <SELECT NAME=Napoj>
    <OPTION>Cola
    <OPTION>Tonic
    <OPTION SELECTED>Pivo
    <OPTION VALUE=turek>Černá káva
    </SELECT><BR>
    Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT>
    </FORM>
    
    Příklad zobrazení formuláře prohlížečem:
    Nápoj:
    Stiskni zde pro odeslání:

    Položky, které mají uveden atribut SELECTED, jsou počátečně vybrané. Pokud je text položky delší, je vhodné definovat hodnotu položky, která bude předána při výběru položky, atributem VALUE.

    Vložený obrázek

    Vložený obrázek má ve formuláři podobné použití jako vložený obrázek v hypertextovém odkazu. Je zároveň aktivujícím tlačítkem formuláře. Když uživatel stiskne tlačítko myši nad obrázkem, je aktivován formulář a jako hodnota je předána relativní pozice grafického kurzoru vzhledem k levému hornímu rohu obrázku. Pozice je předána ve tvaru jméno pole doplněné příponou .x a .y.
    <FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET>
    Stiskni zde pro odeslání: <INPUT TYPE=IMAGE NAME=Obrazek SRC="image.gif">
    </FORM>
    
    Příklad aktivace formuláře:
    GET http://www.fit.vutbr.cz/cgi-bin/printenv?Obrazek.x=10,Obrazek.y=20
    
    Vstupní pole může obsahovat atribut ALIGN se stejným významem jako u značky <IMG>.

    Skryté pole

    Pole HIDDEN slouží pouze pro identifikaci formuláře. Dovoluje použít stejný program na straně serveru pro zpracování různých formulářů:
    <FORM ACTION="http://www.fit.vutbr.cz/cgi-bin/printenv" METHOD=GET>
    <INPUT TYPE=HIDDEN NAME=Typ VALUE="Objednavka hamburgeru">
    Adresa: <INPUT TYPE=TEXT NAME=Adresa SIZE=20><BR>
    Hranolky: <INPUT TYPE=CHECKBOX NAME=Hranolky VALUE=ano><BR>
    Hamburger: <INPUT TYPE=RADIO NAME=Hamburger VALUE=maly>malý
    <INPUT TYPE=RADIO NAME=Hamburger VALUE=velky CHECKED>velký<BR>
    Stiskni zde pro odeslání: <INPUT TYPE=SUBMIT>
    </FORM>
    
    Příklad zobrazení formuláře prohlížečem:
    Adresa:
    Hranolky:
    Hamburger: malý velký
    Stiskni zde pro odeslání:

    Příklad požadavku odeslaného po vyplnění formuláře:
    GET http://www.fit.vutbr.cz/cgi-bin/printenv?Typ=Objednavka+hamburgeru&Adresa=nejaka+adresa&Hranolky=ano&Hamburger=maly
    
    Skryté pole je odesláno stejně jako vstupní pole zadaná uživatelem a program jej může použít pro rozlišení různých vyplněných formulářů. Hodnotu skrytého pole nemůže uživatel ovlivnit.


    Poslední změna:
    Pokud máte námět na vylepšení této stránky nebo na ní naleznete chybu, zašlete dopis na adresu lampa@fit.vutbr.cz.