Moderní webové stránky musí pružně reagovat na požadavky uživatelů a
zpřístupňovat informace, které se v čase mění. Stránka tedy nemůže být napevno uložena někde
na disku serveru, ale pro každý požadavek uživatele se musí znovu vytvořit tak,
aby reflektovala aktuální stav věci. Těmto požadavkům lze vyhovět pouze tak, že každý
požadavek na stránku vyvolá spuštění programu (tzv. skriptu), který si zjistí všechny
potřebné aktuální informace a složí z nich výslednou podobu stránky v HTML.
Při generování na straně klienta dostane klient www stránku včetně zdrojových kódů
nebo binárních souborů a je na počítači klienta, aby provedl potřebné úpravy a předal
prohlížeči stránku vhodnou pro zobrazení.
Naopak, pokud dochází ke generování na straně serveru, jsou všechny vsuvky a zdrojové kódy
provedeny a interpretovány a stránka je serverem sestavena do obyčejné statické webové stránky a
poslána klientovi, který se stará jen o její zobrazení.
- Serverem vkládané vsuvky
- CGI-skripty
V případě serverem vkládaných vsuvek se příkazy
skriptu kombinují přímo se zápisem stránky v HTML. Předtím než je
stránka odeslána uživateli, jsou všechny příkazy skriptu vyhodnoceny a
jejich výsledek doplněn na odpovídající místo stránky. O vyhodnocení a
zpracování příkazů se stará sám WWW-server. Do prohlížeče dorazí již
zcela běžná stránka zapsaná v HTML.
Nejstarším zástupcem serverem vkládaných vsuvek jsou SSI (Server Side
Includes). Mnohem větší možnosti nabízejí komerční systémy Server Side JavaScript
(Netscape) a ASP (Active Server Pages -- Microsoft). Stejné možnosti
nabízí i volně šiřitelný systém PHP.
CGI-skripty jsou programy zapsané v libovolném
programovacím jazyce a přeložené do spustitelné podoby (např.
exe-soubor). Pokud server obdrží jako požadavek URL, které ukazuje na
spustitelný program, program spustí a výsledek jeho běhu předá
prohlížeči jako odpověď. CGI-skript tedy musí na svůj výstup zapisovat
ve formátu HTML.
Pro psaní CGI-skriptů se nejčastěji používají příkazové shelly, což
je obdoba dávkových souborů v Unixu, a jazyk Perl. Nic však nebrání tomu
psát CGI-skripty i v C/C++, Pascalu nebo třeba v Javě. Na tomto místě
můžeme připomenout, že Java kromě možnosti tvorby Java-apletů nabízí i
možnost vývoje klasických aplikací.
[na obsah]
SSI
Princip SSI spočívá v tom, že do zápisu stránky v HTML můžeme doplnit některé
příkazy zapsané ve speciálním formátu. WWW-server HTML stránku před
odesláním klientovi (prohlížeči) prohlédne a všechny vložené příkazy provede.
SSI se do stránky vkládají v následujícím tvaru:
<!--#příkaz parametr="hodnota"-->
Vidíme, že SSI se uzavírají do HTML komentáře (<!-- ...
-->). Důvod je jednoduchý: Pokud server neumí SSI příkaz
interpretovat a neprovede jej, dorazí do prohlížeče SSI jako obyčejný
komentář, který neovlivní výsledné zobrazení stránky.
Je třeba zdůraznit, že ne
všechny servery podporují SSI samy od sebe. Zejména komerčně pronajímané
servery poskytovatelů připojení mívají podporu SSI z bezpečnostních
důvodů vypnutou. Před používáním SSI je tedy vždy nutné zjistit od
správce serveru, zda máme právo SSI používat.
Aby server nemusel před odesláním prohlížeči kontrolovat přítomnost
SSI ve všech .html souborech, ukládají se stránky s SSI
obvykle do souborů s příponou .shtml. WWW-server je pak
nakonfigurován tak, aby SSI prováděl v těchto souborech. Toto opatření
pomáhá zvýšit výkon serveru v případech, kdy SSI obsahují pouze některé
stránky.
Nejběžnější SSI příkazy:
- #include - vloží soubor
- #echo - vloží obsahem definované proměnné
- #exec - vloží do stránky výstup programu, který je spuštěn (nebezpečí zneužití!)
- #config - ovlivňuje formát zobrazení velikostí souborů, údajů o datu a čase a chybových hlášení.
[na obsah]
ASP
ASP (Active Server Page) je technologie Microsoftu určená pro tvorbu webových aplikací.
ASP fungují na principu serverem vkládaných vsuvek - stránku doplníme o příkazy,
které se vždy před odesláním stránky provedou na serveru. Příkazy jsou oddělovány pomocí
<% a %>. Stránky jsou ukládány pro rozlišení od běžných HTML stránek s příponou
.asp.
Jako skriptovací jazyk můžeme použít VBScript nebo JScript. (JScript je implementace
JavaScriptu od Microsoftu.) ASP mají modulární strukturu, takže umožňují použití téměř
libovolného programovacího jazyka. K dispozici jsou moduly např. pro Perl, REXX a Python.
Standardně podporované jazyky totiž nejsou ideální pro vývoj webových aplikací,
protože nemají moc silné funkce pro práci s řetězci – a ty jsou potřeba pro vyhodnocování
vstupu od uživatele.
Důležitým rysem technologie ASP je, že téměř veškeré operace se provádějí pomocí objektů.
Mezi základní objekty ASP patří:
- Application - práce s hodnotami, které jsou společné pro celou aplikaci
- Session - pro práci s hodnotami každého konkrétního clienta
- Response - odesílání informací od clienta na server
- Server - obsahuje funkce pro vlastní práci serveru
Největšími nevýhodami ASP je komerční politika a platformní závislost (platforma Windows a
webový server od Microsoftu). Výhodou je modulárnost a s tím související použití mnoha jazyků.
[na obsah]
PHP
PHP (Professional Home Pages) je dalším skriptovacím jazykem, který se přímo
začleňuje do textu HTML stránky jako vsuvky pomocí oddělovačů <? a ?>.
Vlastní skriptovací jazyk je velice podobný
programovacímu jazyku C, do kterého jsou přidané některé prvky PERLU či JAVY.
Celý systém je pak maximálně optimalizovaný pro snadnou a efektivní tvorbu
dynamických stránek. PHP lze jednoduchým způsobem doplnit o nové funkce a objekty,
které umožňují provozovat funkce, které nejsou standardně součástí PHP.
Stránky obsahující PHP vsuvky jsou ukládány pro rozlišení od běžných HTML stránek s příponou
.php, .php3 nebo .phtml.
Velkou výhodou PHP je to, že je šířeno jako freewarový produkt (včetně zdrojových textů) a
to, že je nezávislý na platformě i na webovém serveru, na které běží.
Lze jej tedy používat jak pod Windows, tak i pod Linuxem, a to v podstatě na
libovolném HTTP serveru.
PHP si nejlépe rozumí se serverem Apache (lze dokonce kompilovat spolu), který je rovněž pro
obě platformy a opět je šířen jako freeware.
Na serveru Apache je PHP možné provozovat jako standardní CGI skripty
(spouští se externí interpret jazyka) nebo jako modul serveru Apache, což zvyšuje bezpečnost
a rychlost prováděných operací.
[na obsah]
Ukázky kódu
Ačkoliv lze v ASP použít několik jazyků, budou všechny příklady uvedeny ve VBScriptu.
Pozdrav
| ASP
|
<% If Time >= #12:00:00 AM# And Time <= #12:00:00 PM# Then %>
Dobré ráno!
<% Else %>
Dobré odpoledne!
<% End If %>
|
PHP
|
<? if (date("A")=="AM") {
echo "Dobré ráno!";
} else {
echo "Dobré odpoledne!";
} ?>
|
Mnohonásobný výpis
| ASP
|
<% For I = 1 to 7 %>
<FONT SIZE=<%= I %>>Ukázkový text</FONT><BR>
<% Next %>
|
| PHP
|
<? for($i=0; $i<=7; $i++): ?>
<P><FONT SIZE="<?echo $i?>">Ukázkový text</FONT>
<? endfor ?>
|
Použití formulářů
| ASP
|
<FORM ACTION=obsluha.asp METHOD=GET>
Jméno: <INPUT TYPE=TEXT NAME=jmeno><BR>
Věk: <INPUT TYPE=TEXT NAME=vek><BR>
<INPUT TYPE=SUBMIT VALUE="Odeslání formuláře">
</FORM>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Obsluha formuláře</TITLE>
</HEAD>
<BODY>
<H1>Výsledek obsluhy formuláře</H1>
<%= Request.QueryString("jmeno") %> je
<% vek = Request.QueryString("vek")
If vek < 10 Then
Response.Write "pěknej mlíčnák"
ElseIf vek < 20 Then
Response.Write "teenager"
ElseIf vek < 60 Then
Response.Write "v nejlepších letech"
ElseIf vek < 100 Then
Response.Write "je pravděpodobně prarodič"
Else
Response.Write "je někde mezi stovkou a smrtí"
End If %>.
</BODY>
</HTML>
|
| PHP
|
<FORM ACTION=obsluha.phtml METHOD=GET>
Jméno: <INPUT TYPE=TEXT NAME=jmeno><BR>
Věk: <INPUT TYPE=TEXT NAME=vek><BR>
<INPUT TYPE=SUBMIT VALUE="Odeslání formuláře">
</FORM>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Obsluha formuláře</TITLE>
</HEAD>
<BODY>
<H1>Výsledek obsluhy formuláře</H1>
<? echo $jmeno ?> je
<? if ($vek < 10):
echo "pěknej mlíčnák";
elseif ($vek < 20):
echo "teenager";
elseif ($vek < 60):
echo "v nejlepších letech";
elseif ($vek < 100):
echo "je pravděpodobně prarodič";
else:
echo "je někde mezi stovkou a smrtí";
endif
?>.
</BODY>
</HTML>
|
[na obsah]
tyto stránky využívají kaskádní styly CSS level 1 - pro korektní zobrazení
používejte prohlížeč s podporou CSS
(c) Miroslav Krupa, 2000