Webové servery včera a dnes

1. 9. 1998

Sdílet

V současné době pro mnoho lidí pojmy Web a Internet splynuly natolik, že jsou považovány za synonyma. I když se jedná...
V současné době pro mnoho lidí pojmy Web a Internet splynuly natolik, že jsou
považovány za synonyma. I když se jedná jen o jednu z mnoha aplikací
využívajících Internet, ukusuje WWW podstatnou část koláče popularity. Web
získal svou oblibu zejména pro snadné ovládání a grafické uživatelské rozhraní
a s trochou nadsázky je možno říct, že především díky této službě se Internet
velmi rychle rozšířil ze studentského prostředí do podniků a domácností. A jak
je možno usuzovat ze současného vývoje, Web by mohl zakončit první vlnu svého
úspěšného tažení světem tím, že v podobě WebTV pronikne i na obrazovky běžných
televizních přijímačů.
Co je to webový server
Internetový server HTTP je program, který je spuštěn na libovolném počítači
připojeném k Internetu. Protože jeden počítač může plnit úlohu více serverů,
jsou v rámci telekomunikačního protokolu zavedeny tzv. porty. Tyto porty jsou
pevně přiděleny každé službě a umožňují tak klientům připojit se přímo na
požadovanou službu. WWW server "naslouchá" na portu 80. K tomuto portu také
směřují všechny požadavky klientů. Aby server mohl současně obsluhovat více
klientů, slouží port 80 pouze k navázání kontaktu a přenos dat již probíhá na
některém z právě volných portů. Protože program serveru je zpravidla spuštěn se
startem počítače a protože běží na pozadí po celou dobu, říká se mu démon
(daemon).
Počátky
Nejstarším serverem je celkem logicky CERN httpd (CERN HTTP daemon), který byl
vyvinut v rámci úvodního projektu ve švýcarském výzkumném středisku CERN. Jeho
vývoj je už několik let ukončen a jeho uživatel tedy najde v případě potíží
pomoc jen velmi těžko. Přesto je stále ještě využíván u téměř 11 500 serverů.
Jeden z nich najdete na adrese http:// info.cern.ch/ kde sídlí první,
historický webový server v Internetu. Je určen pro většinu zná-mých systémů
unixového typu a po celou dobu je k dispozici zcela zdarma.
Pokud se podíváme na historii webových prohlížečů (viz příslušná kapitola),
zjistíme, že prvním grafickým browserem byl Mosaic od NSCA. Spolu s grafickým
prohlížečem vyvíjeli však v NCSA i server. Dostal samozřejmě jméno NCSA httpd a
v Internetu stále zaujímá 5. místo se zhruba 64 tisíci instalacemi. Ve srovnání
se svým předobrazem z CERNu umožňoval NCSA httpd pružnější přidávání dalších
modulů a funkcí a také byl déle vyvíjen a podporován. I tento server je určen
pouze pro unixové systémy a je nabízen zdarma.
Přichází Apache
Z NCSA httpd se před lety oddělila samostatná větev, která dnes zmohutněla do
samostatného, dnes velmi vzrostlého kmene. Původně se totiž jednalo o
"záplatovaný" NCSA httpd. Těmto záplatám se anglicky říká "patch", server proto
dostal přezdívku "záplatovaný server" neboli "a patchee server" (vyslovováno "e
pačí servr"), z čehož byl už jen krůček k indiánskému Apache server
(vyslovováno "epačí servr").
I když jeho podíl na trhu prohlížečů nějaký čas klesal, dnes si stále ještě
server s barevným perem ve znaku drží nadpoloviční většinu. V celosvětovém
měřítku to letos v srpnu bylo 50,35 % (podle statistik Netcraftu, viz http://
www.netcraft.com/survey) a u nás dokonce 57 % (zdroj: CzechCraft). Apache od
svého předobrazu přebral jeho dobré vlastnosti a za několik let vývoje dokáže
nabídnout vše, co k prezentaci v Internetu potřebujete. Je nabízen zdarma a
funguje na všech možných systémech včetně 32bitových Windows.
Webové servery od Netscapu
Firma Netscape samozřejmě nenabízí jen prohlížeče. I její webové servery si
našly poměrně dost zákazníků, zejména díky snadnější obsluze, jednodušší
instalaci a správě a vyššímu stupni zabezpečení. Servery Netscapu jsou také
součástí elektronických komerčních systémů, pro které jsou upravovány na míru.
V současnosti zaujímají necelých 5 % trhu a jejich poměr zvolna klesá. Pracují
na všech platformách včetně 32bitových Windows. Jejich cena se ovšem pohybuje
ve stovkách dolarů.
Microsoft a jeho IIS
Firma Microsoft poněkud podceni-la nástup Internetu, což se projevilo i ve
vývoji serverů. První IIS (Internet Information Server) se objevil až v únoru
roku 1996. Nicméně i zde dokázal Microsoft svému největšímu komerčnímu rivalovi
na trhu WWW pořádně zatopit. V současné době je na 2. místě s více než 22 %
trhu. Přestože se jednotlivé verze serveru IIS potýka-jí průběžně s různými
bezpečnostními problémy (které jsou však na druhou stranu poměrně rychle
odstraňovány), počet jeho uživatelů roste. Pravděpodobně hlavně díky ceně.
Internet Information Server je totiž určen výhradně pro Windows NT a jako
takový je dodáván zdarma v ceně instalace serveru NT. Proto mu dokáže
konkurovat pouze Apache, který je také zdarma, a pro který existuje mnohem více
nadstavbových prvků.
Vlastnosti nejrozšířenějších webových serverů
Bezpečnost
Všechny rozšířenější webové servery nabízejí možnost omezit přístup k vybraným
zdrojům jen těm návštěvníkům, kteří znají správné přístupové jméno a heslo. U
unixových serverů lze tuto možnost nastavit jak ze strany správce serveru
(přímo v konfiguračních souborech), tak v tom kterém adresáři. Zpravidla se k
tomu využívá tří souborů, které obsahují seznam chráněných souborů
(.ht-access), seznam uživatelů a jejich hesel (.htpasswd) a skupin (.ht-group),
do kterých náleží. Základní ověřování hesel ovšem není příliš bezpečné, protože
hesla procházejí sítí nezašifrovaná, takže je může cestou kdokoli zachytit.
Vhodnější je jiný způsob autentikace uživatele, např. pomocí certifikátů. K
daným zdrojům potom mohou přistupovat pouze klienti, kteří se prokáží platným
certifikátem.
Virtuální servery
Všechny výše zmiňované servery (s výjimkou CERN httpd) umožňují systém tzv.
"virtuálních serverů". V takovém případě dokáže jeden server na jednom počítači
pracovat s více adresami. Každá adresa přitom obsahuje vlastní data, takže to
navenek vypadá, jako by na protější straně nenaslouchal server jeden, ale třeba
dvacet či víc. Toho využívají zejména firmy, jež pronajímají místo na
serverech, protože tím lépe využijí hardware, který by jinak pracoval jen na
zlomek výkonu.
CGI a spol.
Podívejme se nyní stručně na některé serverové technologie. Zájemce o
podrobnější informace odkazujeme přitom na seriál Aplikace na Webu, který od
letošního jara vychází v rubrice Internet.
CGI
První webové servery nedokázaly nic jiného, než posílat klientům obsah souborů
uložených na disku. Bylo samozřejmě škoda nechat server jen tak zahálet, a
proto spatřilo světlo světa CGI (Common Gateway Interface). Poprvé bylo použito
u serveru NCSA a umožňovalo spouštět na serveru programy, které nějak
zpracovávaly odesílaná nebo přijímaná data.
Díky tomu mohly vzniknout elektronické formuláře, bez nichž bychom si už dnes
Web nedokázali představit umožňují totiž nejen získávat údaje o návštěvnících,
ale slouží také jako rozhra-ní pro vyhledávací služby a pro různá diskuzní
fóra. Zpřístupňují také archivy elektronické pošty, Netnews a přístup k
databázím. CGI pomáhá vyrábět počítadla návštěvnosti stránek nebo statistické
či analytické výstupy.
CGI stálo také u zrodu tzv. aktivních map, pomocí kterých je možno z jednoho
obrázku vyvolávat různá URL s ohledem na pozici ukazovátka myši na ploše
obrázku. Pro jednodušší komunikaci byla v rámci CGI připravena sada proměnných,
kterou si vyměňuje klient se serverem, a podle které ta která strana pozná, co
se od ní požaduje a kdo je oním žadatelem.
CGI definuje 2 metody výměny dat POST a GET. Ta první je využívána u většího
objemu dat, protože odesílané údaje se neobjeví v příkazové řádce prohlížeče.
Touto metodou je také možno posílat z klienta serveru celé soubory. Metoda GET
se využívá tam, kde je možno program CGI volat nejen pomocí formuláře, ale i
přímo z odkazu nebo z příkazové řádky prohlížeče. Všechna odesílaná data se
totiž objeví přímo v URL.
Aby nedošlo při přenosu ke ztrátě dat, jsou všechny znaky nevyskytující se v
základní kódové tabulce ASCII převedeny do hexadecimálních kódů. Na straně
klienta je tato funkce vyvolána automaticky jak při odesílání formuláře, tak
při zadávání povelů do příkazové řádky. Na straně serveru je ovšem nutno takto
kódovaná data převést do původního tvaru. Na to je třeba při tvorbě programů
využívajících CGI myslet.
Programy CGI jsou na serveru zpravidla umístěny v jednom adresáři, do kterého
má přístup pouze správce serveru. Představují totiž určité bezpečnostní riziko,
protože umožňují spouštět programy na serveru. To může v určitých případech
otevírat cestu případným útokům vetřelců. Proto je vhodné, když je WWW server
spuštěn s co nejmenšími právy a když má přístup pouze do míst, která nemohou
výrazně ovlivnit funkci systému ani dalších programů. I když většina serverů
nabízí možnost spouštění programů CGI ze všech uživatelských adresářů (soubory
s příponou .cgi), tato funkce se zpravidla nedoporučuje.
SSI
Některé servery nabízejí rozšíření původního CGI. V tom případě je kód programu
zapsán přímo v definičním souboru stránky a zpracováván serverem před odesláním
klientovi. U unixových serverů byl prvním krůčkem tímto směrem princip SSI
(Server Side Includes Vsuvky na straně serveru) neboli "parsed HTML"
(vyhodnocované HTML, přípona .shtml), který umožňoval do souborů načítat určitá
data až ve chvíli, kdy si je klient vyžádal. Těmito daty mohl být jak jiný
soubor, tak výstup z programu spuštěného na serveru. Tento systém je využíván
dodnes, zpravidla ovšem na samostatných serverech, které jsou ve správě
jediného uživatele.
PHP
Dalším krokem v unixových systémech je PHP. Tato nadstavba umožňuje zejména
snadnou komunikaci klienta s databázemi. Na místech, kde se mají objevit
patřičná data, jsou přímo v textu stránky zapsány povely pro práci s databází.
Ty jsou opět zpracovány serverem ve chvíli, kdy o ně někdo požádá. Klient potom
při přístupu na danou stránku obdrží zformátovaný výpis z databáze, který může
podle okolností třeba i měnit. Vše závisí jen na tom, co konkrétní program
návštěvníkovi umožní.
ASP
Na podobném principu pracuje i IIS z produkce Microsoftu. ASP (Active Server
Pages Aktivní stránky serveru) obsahuje sadu povelů vycházejících z Visual
Basicu. Pomocí těchto povelů je možno volat libovolný program na serveru, jehož
výstupní údaje jsou ve chvíli vyvolání stránky umístěny na místo kódu a poté
patřičně zobrazeny klientem. ASP umožňuje také poměrně jednoduché propojení s
databázemi a další funkce uvedené výše. Protože stránky pro ASP je teoreticky
možno vyvolávat ze všech adresářů serveru, je třeba myslet na možná
bezpečnostní rizika a tuto funkci zpřístupňovat pouze důvěryhodným uživatelům.
Servlet
Servlet (vzniklo spojením slov server a applet) je program napsaný v jazyce
Java, který běží na straně serveru.
Platformy webových serverů
Webový server je teoreticky vzato možno provozovat na libovolném počítači s
libovolným operačním systémem, který musí splňovat jedinou podmínku: podporu
TCP/IP. Běžně se ovšem nejvíce využívají servery se systémy Unix nebo Windows
NT, o něco méně potom s MacOS. V začátcích byly používány zejména pracovní
stanice s některým ze systémů Unix.
V poslední době (zejména díky nízkým pořizovacím nákladům) je hlavním
představitelem tohoto směru Linux, který je vyvinut zejména pro počítače s
procesory Intel a podobnými. Jedná se o plnohodnotný unixový systém, který je
nabízen všem zájemcům zdar-ma a který v kombinaci se serverem Apache a dalšími
podpůrnými nástroji umožňuje vybudovat za poměrně málo peněz velmi spolehlivý a
výkonný webový server. Nabízí totiž stabilitu a robustnost Unixu s nízkou cenou
stanice, na které může být provozován.
Ostatní unixové systémy (Solaris, Irix, HPUX, AIX, OSF1) jsou většinou určeny
pro speciální servery a pracovní stanice, jejichž cena většinou několikanásobně
převyšuje cenu výkonného PC. Protože Linux nabízí i grafické uživatelské
rozhraní (X-Windows), je možno pracovat s ním celkem pohodlně. Dá to ovšem
trochu práce.
V poslední době se na poli internetových (a zejména intranetových) serverů
začíná prosazovat Internet Information Server (IIS) z produkce Microsoftu. Je
určen výhradně pro Windows NT a je dodáván jako součást instalace serveru NT.
Ve srovnání s kombinací Linux + Apache + PHP nabízí jednotnou a uživatelsky
přívětivější obsluhu, na druhou stranu ovšem více zatěžuje hardware a obecně
potřebuje více operační paměti, aby dosahoval výkonů srovnatelných s Linuxem. V
případě, že Unixům příliš nerozumíte a nechcete se spolehnout na služby někoho
dalšího, je pro vás IIS asi tím nejvhodnějším kandidátem.
V obou případech se vyplatí průběžně sledovat informace o možných chybách
programů, protože se čas od času stává, že je objevena nějaká nová, která může
vést k menším či větším problémům. Nelze jednoznačně říci, ve kterém systému je
nalezeno více problémů, s ohledem na větší rozšíření Linuxu v internetové
komunitě a na jeho celkovou otevřenost, je však zřejmě třeba dohlížet více na
něj.
Ti majetnější mohou vyzkoušet alternativu unixové pracovní stanice nebo
servery. Zajímavá je např. kombinace SGI O2 + IRIX 6 + Netscape Enterprise
Server, jehož cena začíná zhruba na 280 000 Kč. Ceny srovnatelných stanic Sun
se pohybují zhruba na stejné úrovni. Ceny serverů se potom pohybují nad
půlmilionovou ryskou. Získáte ovšem stabilní systém se spoustou nástrojů
usnadňujících jeho správu a také s programy, jejichž nasazení vám pomůže zvýšit
bezpečnost.
Proxy a cache
Jak rostl doslova ze dne na den poměr dat služby WWW na celkovém provozu v
Internetu, uvědomovalo si stále více lidí, že je zbytečné, aby každý klient z
jednoho konce světa přenášel všechna data ze serveru na druhém konci světa.
Zrcadlení
Určitým řešením by mohl být vzor přejatý z prostředí FTP. Tam totiž existuje
systém tzv. "zrcadlících serverů" (mirror sites), v rámci kterého jsou archivy
souborů kopírovány z hlavního serveru na jeho zástupce pro jednotlivé oblasti.
Toto řešení je ovšem v rámci WWW poměrně složité, protože zde existuje mnohem
více serverů, jejichž zrcadlení by bylo buď příliš složité, nebo zcela
zbytečné. Tehdy vznikla myšlenka zástup-ců meziskladů. Novější verze serverů
proxy cache umožňují vytvářet hierarchickou strukturu, v rámci které si
jednotliví zástupci vyměňují data s kolegy nalézajícími se v jejich okolí. To
zpravidla vede k ještě větším úsporám přenosové kapacity.
Vlastnosti proxy cache
Pokud máte svůj prohlížeč nastaven tak, aby využíval služeb proxy cache,
znamená to, že všechny vaše požadavky na nové objekty nejsou posílány na adresu
cílového serveru, ale vašemu prostředníkovi. Ten se nejdříve podívá, zda už
daný objekt náhodou nemá uložen ve své databázi. Pokud jej najde a tento objekt
je dostatečně aktuální, zašle vám jej. Pokud jej nenajde a je členem
hierarchické struktury, pozeptá se ve svém okolí. Teprve když ani zde kýžený
objekt nenajde, vyžádá si jej od cílového serveru. Ten si potom uloží do
databáze a zároveň jej pošle vám.
V principu to znamená, že první, kdo o daný objekt požádá, čeká o trochu déle
než v případě, že by pracoval bez prostředníka. Všichni další už ale dostávají
požadovaná data mnohem rychleji. Jak je vidět, ani zde nemají průkopníci na
růžích ustláno.
Systém proxy cache samozřejmě počítá i s daty, která není povoleno ukládat v
databázích. V tom případě o ně bez okolků požádá cílový server a bez toho, aby
si je ukládal do databáze, vám je pošle. Jedná se např. o výstupy z programů
(CGI, PHP, SSI, ASP) nebo o data nalézající se v oblastech s přístupem
chráněným heslem.
Klienta je možno nastavit tak, aby požadoval pouze nejčerstvější verze daného
objektu. V takovém případě si proxy cache u cílového serveru ověřuje, že
objekt, který má uložen v databázi, je totožný s aktuální verzí. Stejně tak
server je možno nastavit tak, aby určité objekty provázel sdělením, že si
nepřeje, aby byly ukládány do databází proxy cache.
Dokonce i tvůrci stránek mají možnost doprovodit svůj dokument žádostí, aby si
jej proxy cache neukládaly do svých databází. Stačí k tomu povel <META
HTTP-EQUIV="Pragma" CONTENT="no-cache"> v hlavičce dokumentu. Pokud chcete, aby
měl daný soubor omezenou platnost, můžete do hlavičky napsat něco jako <META
HTTP-EQUIV="Expires" CONTENT= "Mon, 28 Sep 1998 00:00:01 GMT"> (platnost
souboru do 28. 9. 1998). V případě, že zde uvedete datum starší než aktuální,
znamená to, že platnost objektu už vypršela a proxy cache jej při nejbližší
příležitosti vymaže do databáze nebo jej vůbec neuloží.
Specializované systémy proxy cache
Jednou z prvních vlaštovek na tomto poli byl CERN httpd, který nabízel i funkci
proxy cache. Jeden server tak mohl plnit jak funkci primárního zdroje, tak
meziskladu. Tuto kombinaci nabízí i Apache, osobně si ale myslím, že úzce
specializovaný systém je v tomto případě lepší.
Z projektu Harvest, který měl za cíl indexovat obsah serverů v Internetu,
vzešel jako nejschopnější odnož server cached (cache daemon), který se
specializoval právě na funkci proxy cache. Ve chvíli, kdy se autoři tohoto
programu rozhodli pro jeho komercionalizaci, oddělila se z vývojového týmu
skupina lidí, kteří pokračovali v práci na volně dostupném serveru. Tak vznikl
Squid (oliheň), v současnosti nejrozšířenější server proxy cache v Internetu.
Podobné servery nabízí i Netscape a Microsoft, ty jsou ovšem využívány spíše v
prostředí Intranetů a v kombinaci s klasickými webovými servery jako součást
jejich instalačního balíku. Pracují s vlastními protokoly a nedokážou tvořit
hierarchickou strukturu.
Webové servery a statistiky jejich provozu
S tím, jak roste komerční využívání Internetu i WWW, stoupá také potřeba
podrobnějších statistik. V principu se používá dvou přístupů, z nichž každý má
svá pro i proti. V prvním případě je analyzován žurnál (log) serveru. Server si
totiž může zapisovat údaje o každé transakci do deníku, který je možno posléze
vyhodnotit. To tedy znamená, že tyto analýzy jsou prováděny zpětně, zpravidla
jednou denně, týdně nebo měsíčně.
Frekvence statistik
V případě, že patří zkoumaný server mezi ty navštěvovanější, může jeho deník
dosáhnout velikosti i několika stovek megabajtů. To samozřejmě klade velké
nároky na místo na disku i na analytický program, který se musí prokousat
haldou dat a ještě je nějak rozumně setřídit. V takovém případě je asi
vhodnější provádět týdenní vyhodnocování a dlouhodobější statistiky vyvozovat z
těchto průběžných výsledků. Tuto analýzu asi nebudete provádět ručně, je vhodné
povolat na pomoc nějaký program. V Internetu jich pár najdete, ty lepší jsou
ovšem většinou k dispozici za peníze, takže záleží jen na vašich možnostech, po
kterém sáhnete. Poměrně ucelený přehled takových programů najdete třeba u
služby AdBanner.
Další možnosti
Druhý přístup spočívá v tom, že na každou sledovanou stránku umístíte odkaz na
program, který je vyvolán při každém přístupu na ni. Tento program už si může
poznamenávat jen ty údaje, které vás zajímají. Vyhodnocení takových údajů potom
probíhá o poznání rychleji a ani nároky na místo na disku nebývají tak velké.
Nevýhodou tohoto řešení je ovšem větší zátěž serveru a vyšší provoz v síti. Při
tomto postupu můžete využívat i služby specializované firmy, která potřebné
statistiky pořídí za vás. Některé to dělají dokonce zadarmo.
Velmi hrubý obrázek o návštěvnosti si můžete udělat i nasazením textového nebo
grafického počítadla. Toto počítadlo je výstupem z programu (volaným pomocí
CGI, ASP, PHP, SSI), který je zavolán při každém požadavku klienta o danou
stránku. Průběž-ný výsledek můžete (a nemusíte) na sledovaných stránkách přímo
zobrazovat.
Programovací jazyky a vývojové nástroje
V unixových systémech se nejvíce používají programovací jazyky C++
(kompilovaný) a Perl (interpretovaný). Pokud jste ještě neměli čas naučit se C
a programy v Perlu se vám zdají příliš pomalé, vysvítá vám naděje. Podle údajů
Perlovského institutu totiž existuje experimentální kompilátor Perlu, který z
vašeho milého skriptu dokáže vyrobit program zkompilovaný ve strojovém kódu.
Oba jazyky jsou samozřejmě k dispozici v rámci licence GNU, díky které mají
všichni zájemci bezplatný přístup nejen k programům, ale i k jejich zdrojovým
kódům. Jednodušší aplikace je možno vytvořit za pomoci sady povelů přímo z
příkazového prostředí (shellu), o trochu složitější konstrukce nabízejí
speciální formátovací jazyky, jako jsou awk (gawk) nebo sed. Pomocí této sady
je možno vytvořit jak jednoduché vyhodnocování formuláře, tak rozsáhlou
aplikaci provozující virtuální obchodní dům. Vše závisí jen na schopnostech
programátorů, kteří se zpravidla obejdou bez složitějších vývojových nástrojů.
Pro práci s databázemi (např. mySQL nebo PostgreSQL) sice existují nějaké
grafické nadstavby, i zde je ovšem rychlejší a pohodlnější práce s příkazovou
řádkou.
Komerčně nabízené servery z produkce Netscape a Microsoftu mají o poznání
přívětivější ovládání. Oba systémy nabízejí možnost správy jak přímo ze
serveru, tak pomocí prohlížeče na dálku. Tím je možno v systému Windows NT
alespoň částečně nahradit chybějící možnost vzdáleného přístupu ke všem funkcím
včetně možnosti restartovat počítač.
Programování pod Windows
Vývojové nástroje pro Windows jsou samozřejmě graficky orientované, takže si
při programování přijde na své i myš (ne, že by se v Linuxu nehodila, např. pro
kopírování textů je nenahraditelná). I zde je k dispozici jazyk C++ od různých
výrobců za různě vysokou sumu (méně nároční programátoři mající hlouběji do
kapsy mohou z Internetu získat i zjednodušenou verzi Cnebo GNU C++ upravený pro
podmínky Windows) a Perl (zdarma a pro Windows hned v několika verzích), navíc
se přidávají další vývojové nástroje pro Windows, které jsou s to vyrobit
aplikaci pro server WWW. Namátkou jmenujme třeba Borland Delphi nebo MS Visual
Basic. Tyto programy už zpravidla nejsou zadarmo. Jednodušší nástroje šplhají k
cenové hladině 10 000 Kč.
Ani databázové systémy nepořídíte lacino. Počítejte s tím, že si budete muset
připravit několik desítek tisíc Kč. V případě, že z nějakého důvodu nechcete
využívat samostatné vývojové nástroje, IIS v sobě zahrnuje již dříve zmiňovaný
systém ASP, s jehož pomocí můžete naprogramovat celý server bez použití
samostatně vyvinutých programů.
Zabezpečení webových serverů
Požadavky na zabezpečení dat procházejících Webem jsou přece jen vyšší než před
devíti lety. Proto jsou již několik let rozvíjeny systémy, které umožňují co
nejbezpečnější pohyb dat ve WWW. Běžně jsou praktikovány 2 způsoby ochrany dat:
buď zaheslováním přístupu na straně serveru, nebo tím, že jsou data přenášená
po síti v zašifrované podobě. Dobrým zdrojem informací v dané oblasti je opět
server W3C, který se věnuje samozřejmě i zabezpečení. Najdete zde pohromadě
nejčastější otázky a odpovědi na ně, které se týkají otázek bezpečnosti dat ve
WWW.
Hesla a certifikáty
K ověřování přístupových práv návštěvníků stránek i ke zjišťování
důvěryhodnosti přijímaných dat lze využít systém hesel. Při nejnižším stupni
zabezpečení jsou ovšem jak jména, tak hesla přenášena Internetem nezašifrovaná.
Proto je v tomto případě lepší využít sys-tém certifikátů. Jedná se v podstatě
o elektronický podpis, který doprovází data probíhající v síti WWW. Pokud
splňuje certifikát požadovaná kritéria, je započatá operace úspěšně dokončena.
Protože certifikáty vydává důvěryhodný zdroj, je možno tento systém považovat
za poměrně bezpečný. Certifikáty mohou sloužit nejen k ochraně dat v rámci WWW,
ale i k zabezpečení elektronické pošty.
SSL
Především k ochraně soukromí návštěvníků slouží SSL (Secure Socket Layer
Bezpečná podkladová vrstva), které umožňuje šifrování dat mezi serverem a
klientem za pomoci jednorázových asymetrických klíčů. Využívá se zejména při
elektronickém obchodování a při průzkumech, ve kterých respondenti sdělují své
osobní údaje. Na začátku spojení udělí server klientovi šifrovací klíč. Ten je
poté použit k odeslání dat z klienta na server, kde jsou data za pomoci druhého
klíče rozkódována. Internetem jsou tedy přenášena v nečitelné podobě. Při
každém dalším požadavku je vyrobena nová sada klíčů, takže žádná sada není
použita vícekrát po sobě.
Cookies
Určité bezpečnostní potíže může působit systém tzv. "cookies" (sušenek), který
umožňuje serveru ukládat omezený objem dat na počítač klienta a zase si je
odtud později vyžádat. Při vývoji aplikací je proto podle mého vhodnější hledat
jiné způsoby "zapamatování si" úda-jů o návštěvnících než právě tento.
A co děti?
Jak se prostředí WWW šíří i do domácností, roste počet dětí, které mají přístup
k Internetu. A co si budeme namlouvat, velká míra volnosti a svobody v
Internetu poskytuje prostor i obsahu, před kterým by měly být nezkušené děti
chráněny (respektive si to dospělí alespoň myslí).
Obecně se používají 2 přístupy k problému psychologický a technický. Ten první
spočívá ve výchově dítěte k vysokému stupni uvědomělosti. Takový mladý člověk
potom nejen "nebrouzdá" stránkami virtuálního Playboye (či něčeho drsnějšího),
ale ani neshání jeho papírovou verzi a ani se nesnaží zhlédnout nějaký
nepřístupný film. Takový přístup ovšem klade velké nároky jak na dítě, tak na
rodiče.
Druhý přístup spočívá v úpravě prostředků pro přístup k Internetu. Možná třetí
cesta legislativní byla naštěstí prozatím zažehnána.
Ale zpět k technickým řešením. Některá spoléhají na "autocenzuru" autorů obsahu
stránek, kteří by si podle daného žebříčku měli sami určit stupeň nezávadnosti
svých výtvorů. V tomto případě je možno věrohodnost podpořit využitím
elektronických podpisů a na cenzorské zásahy se spoléhat teprve po ověření
důvěryhodnosti zdroje. Tento systém může v konečném efektu nejen přidělávat
autorovi práci, ale také umožnit ostatním, aby jeho stránky snáze našli.
Vyhledávací služby totiž mohou brát vyšší stupeň (ne)závadnosti stránek v potaz
v případě žádosti dospělých, kteří se budou chtít podívat na něco šťavnatějšího.
Jak ukazuje praxe ze Spojených států, systémy na ochranu dětí před možnými
škodlivými vlivy Internetu se už začínají prosazovat i v podnicích, jejichž
zaměstnanci mají přístup k Internetu, který v pracovní době zneužívají k
prohlížení neslušných obrázků. Tady zaměstnavateli prostě stačí patřičně
nastavit prohlížeče, aby měl jistotu, že jeho lidé neutrácejí čas a peníze za
něco, co nemají ve smlouvě. U většiny těchto ochranných systémů je totiž možno
zvolit buď jeden z režimů "zakaž všechno, co není jmenovitě dovoleno", "dovol
všechno, co není jmenovitě zakázáno", nebo jejich kombinaci.
Weboví klienti
Jak už bylo řečeno, webový klient je program, který přijímá data ze serveru,
formátuje je do patřičné podoby a takto zformátovaná je zobrazí uživateli.
Umožňuje také odesílat data z elektronických formulářů. Velmi rychlý rozvoj v
této oblasti vedl na jedné straně k pestré paletě možností, které moderní
prohlížeče nabízejí, na straně druhé si takovéto programy kladou stále větší
nároky na hardware počítače. Zatímco první prohlížeče se pohodlně vešly na
jednu disketu a ani po instalaci nezabíraly na disku příliš mnoho místa, dnešní
cvalíci jsou velcí nejméně 10 MB a o místě na disku ani nemluvě. Nemalé jsou i
nároky na velikost operační paměti. Plně vybavený prohlížeč, který si chcete
navíc spustit na jednom počítači několikrát vedle sebe, už vyžaduje nejméně 16
MB paměti. A to je opravdu minimum, náročnějším "brouzdalům" nebude stačit ani
32 MB RAM.
Moderní prohlížeč umožňuje poměrně složité formátování textů kombinovaných s
obrázky a dalšími multimediálními prvky. Díky tomu je možno sledovat např.
přímý přenos ze startu kosmického plavidla. Nabízí se i možnost doprovodného
zvuku, který hraje na pozadí při prohlížení té které stránky. Stránky je možno
oživit různými animacemi, takže si člověk může občas připadat jako v
interaktivní televizi. S ohledem na relativně nízkou propustnost koncových
přípojek se však většinou místo plynulé zábavy dočkáte trhaných záběrů, které
si nemůžete patřičně vychutnat.
Okno prohlížeče je navíc možno rozdělit do několika vzájemně propojených rámců
(frames), z nichž každý obsahuje jiná data. Díky tomu lze z jednoho rámce
spustit akci v jiném rámci, což je využíváno zejména v aplikacích pracujících
na principu Průzkumníka z Windows 98. Určité části okna totiž zůstávají stále
stejné a mění se jen hlavní plocha, která obsahuje to, po čem právě toužíte.
Díky programovacím jazy-kům Java, JavaScript a VB Script a komponentům ActiveX
dokáží webové prohlížeče spouštět programy přímo na straně klienta. Tyto
programy mohou upravovat nebo rozšiřovat ovládací prvky na dané stránce, ale
třeba i spolupracovat s uživatelem při vyplňování dat elektronických formulářů
nebo naopak zobrazovat data zasílaná průběžně ze serveru. I v tomto případě je
ovšem třeba dbát zvýšené opatrnosti, protože tím, že umožňujete na svém
počítači spouštět cizí programy, otvíráte jej tím i potenciálnímu riziku. Čas
od času je totiž objevena nějaká chyba v kódu prohlížeče, kte-rá umožňuje
záludným jedincům provádět záškodnické akce na vašem počítači. Proto je třeba
průběžně sledovat internetovou stránku vámi používaného programu a aktualizovat
jej vždy, když se objeví novější verze.
Základní pojmy a historie
Co je to WWW
World Wide Web neboli Celosvětová pavučina je služba založená na principu
klient-server. Na jedné straně "naslouchá" počítač server čekající na požadavky
jednotlivých klientů (prohlížečů neboli browserů) na straně druhé. Požadavkem
přitom může být nejen pouhá žádost o zaslání nějakého souboru, ale i data z
vyplněného formuláře odeslaná serveru ke zpracování.
Krátké ohlédnutí
Když fyzici ve švýcarském CERNu potřebovali v roce 1989 nějaký snadno
ovladatelný a všem přístupný vývěskový systém, napadlo tamní vědce požádat o
spolupráci Tima Bernerse-Leea, který už měl poměrně velké zkušenosti s
pořádáním a skládáním textu rozloženého na malé části. Po krátkém vývoji se v
roce 1990 zrodila World Wide Web, která se za několik let vypracovala na
nejrozšířenější službu v rámci Internetu. Systém navržený pro potřeby fyziků
nabízel nejen možnost kombinace textu s obrázky, ale i vzájemné propojení
jednotlivých textů nebo jejich částí pomocí tzv. hypertextových odkazů.
První verze programu pro práci ve WWW navíc umožňovala nejen prohlížení
stránek, ale i jejich úpravy. Protože ale počítače NeXT nepatřily k právě
nejrozšířenějším, bylo nutno vyvinout klienty i pro jiné operační systémy. Tak
vznikl řádkový (pouze textový) prohlížeč, který byl ve své druhé generaci
nazván Lynxem. Z něj také vycházely všechny další prohlížeče vyvíjené lidmi po
celém světě. Při tomto převodu však došlo k výraznému zjednodušení, takže
původní funkčnosti dosáhly až novější verze prohlížečů firem Netscape
Communications a Microsoft. To vše ovšem až s odstupem zhruba šesti let.
Nástup Webu souvisel s klientskými prohlížeči
Až do konce roku 1993 se WWW využívala jen v malé míře, po celém světě tehdy
bylo zhruba jen 400 serverů. Programy (jak servery, tak klienti) byly vyvíjeny
především studenty a vědeckými pracovníky a byly určeny většinou pouze pro
unixové systémy. Teprve na podzim roku 1993 byl k dispozici grafický prohlížeč
NCSA Mosaic pro většinu systémů používaných v Internetu (Unix, Windows,
Macintosh). Tento program vyvinul Marc Andreessen z amerického NCSA (National
Center for Supercomputing Applications), pozdější spoluzakladatel společnosti
Mosaic Communications (dnes známé jako Netscape Communications).
Příjemné uživatelské rozhraní navíc zjednodušilo i obsluhu dalších
internetových služeb. Webovým prohlížečem bylo možno nejen procházet
hypertextovými dokumenty v rámci WWW, ale přistupovat k serverům FTP (File
Transfer Protocol Protokol pro přenos souborů) a gopher. FTP si svou
nezávislost na Webu zachoval do současnosti, gopher však podlehl náporu svého
mladšího a schopnějšího sourozence, takže dnes již po světě najdete jen pár
stovek serverů nabízejících tuto službu. Gopher totiž umožňoval pouze propojení
celých souborů, nikoli však kombinaci textu s grafikou ani hypertextové odkazy.
V březnu 1994 byla založena společnost Netscape Communications, která jako
první začala vyvíjet programy pro WWW na komerční bázi. V prosinci 1994 byl na
světě první Netscape Navigator spolu se dvěma druhy serverů. Program byl k
dispozici všem zájemcům přímo z Internetu, čímž si velmi rychle získal velký
okruh uživatelů. Pro domácí použití a vzdělávací instituce byl nabízen zdarma,
pro komerční účely za 50 dolarů. Zde pravděpodobně nastal zlom ve způsobu
využívání WWW. Do té doby akademická síť umožnila díky snadnému ovládání a
příjemnému grafickému rozhraní rozšířit Internet ze škol a vědeckých ústavů do
podniků a domácností.
Ve verzi 2 (březen 1996) už byl Navigator nabízen i s editorem (Navigator Gold,
ovšem za vyšší cenu) a stále neochvějně vedl na trhu prohlížečů. Podíl
Navigatoru se tehdy pohyboval kolem 90 %. Tato verze už nabízela kromě tabulek
i rozdělení obrazovky do rámců, z nichž každý mohl obsahovat jiný objekt. Verze
3 (srpen 1996) přidala podporu pro Javu. V té době už se začal dotahovat vážný
konkurent Navigatoru a jeho následníka Communicatoru (verze 4, s podporou
JavaScriptu) Internet Explorer od Microsoftu. Nelítostný boj těchto dvou rivalů
vedl nakonec k tomu, že nejnovější verze Navigatoru i Communicatoru jsou k
dispozici všem zájemců zdarma a kdokoli může dokonce získat všechny zdrojové
kódy prohlížeče a přidružených programů.
Největší současný rival Netscapu na poli prohlížečů Microsoft Internet Explorer
byl uveden teprve v létě roku 1995 a vycházel v podstatě z prohlížeče
vyvinutého firmou SpyGlas. První ani druhá verze však zdaleka nenabízela to, co
konkurence. Jedinou výhodou byla tehdy cena, protože Internet Explorer "byl, je
a navždy bude" (podle slov Billa Gatese) nabízen všem zájemcům zdarma. Z
pohledu českého uživatele se přidávala další výhoda lokalizace programu do
češtiny. To se v případě produktů firmy Netscape podařilo pouze u verze 3.
Pokud jde o funkčnost, Internet Explorer srovnal krok s Navigatorem ve své 3.
verzi, která se objevila v srpnu 1996.
Od té doby jsou jejich schopnosti poměrně vyrovnané, i když Internet Explorer
trpí větším počtem dětských nemocí. Čas od času je totiž objevena nějaká chyba
programu, která může ohrozit systém nebo jiné aplikace nebo dokonce vyzradit
osobní data uživatele. Dlužno ovšem dodat, že podobné problémy se nevyhýbají
ani prohlížečům firmy Netscape. Microsoftu se různými způsoby podařilo prosadit
svůj prohlížeč natolik, že současný podíl těchto dvou nejrozšířenějších
prohlížečů je celosvětově odhadován jako vyrovnaný.
Situace v ČR je jasnější, protože podíl prohlížečů od Microsoftu již je vyšší
než prohlížečů od Netscapu. Například u serveru http://www.reality.cz je to
dokonce zhruba 95 : 5 ve prospěch Internet Exploreru.
Přenosový protokol HTTP
Pro potřeby Webu byl vyvinut zvláštní protokol (HTTP Hypertext Transfer
Protocol Hypertextový přenosový protokol), který pro spojení klientu se
serverem využívá TCP (TeleCommunication Protocol Telekomunikační protokol). To
ve svém důsledku znamená, že po dobu přenosu jedné dávky dat je mezi klientem a
serverem navázáno pevné spojení. Po dobu, kdy si stránku čtete, je zpravidla
klient od serveru odpojen. Další spojení se naváže teprve ve chvíli, kdy si
vyžádáte další stránku.
Vzájemná komunikace probíhající na začátku a na konci každého spojení přitom
zabere nějaký čas a navíc zatěžuje provoz v Internetu daty, která neobsahují
žádnou užitečnou informaci. V případě malých souborů pak může vítání a loučení
klientu se serverem zabrat více času a prostoru než přenos souboru samotného.
Proto prozatím poslední verze HTTP (1.1) umožňuje v rámci jednoho spojení
přenést více souborů. Většina stránek ve WWW se totiž skládá z několika prvků,
ze kterých může být správně sestavena až po jejich úspěšném přenosu. Základním
objektem je zdrojový text stránky, dalšími mohou být šablony dokumentu,
skripty, applety, vložené obrázky, zvuky hrající na pozadí nebo video
přehrávané v rámci dané stránky. Je tedy velmi pravděpodobné, že klient bude
chtít od jednoho serveru více souborů najednou.
HTTP je navržen jako odkrytý, což znamená, že všechna data jsou přenášena v
čitelné formě a mohou být tudíž zachycena i někým, komu nebyla určena. Nemusí
jít přitom "jen" o texty dokumentů, ale i o uživatelská jména a hesla potřebná
k přístupu k některým stránkám. Z toho důvodu lze i v rámci WWW využít
šifrování přenášených dat, které zajistí, aby se k nim nedostal nikdo
nepovolaný. Tomuto protokolu se říká HTTPS (Secure HTTP Bezpečný HTTP).
URL
Protože každý objekt v rámci HTTP musí být přesně defino-ván, bylo zavedeno
adresování pomocí URL (Uniform Resource Locator Jednotné určení zdrojů). Adresa
ve formě URL v sobě obsahuje nejen adresu serveru a umístění daného souboru na
něm, ale i druh služby a číslo portu. Syntaxe vypadá následovně:
služba://adresa:port/soubor
Základní služby přitom jsou: ftp, gopher, http a telnet.
V současné době je již definováno několik dalších zkratek, které se vztahují k
dalším službám přístupným pomocí prohlížečů. Pro šifrované připojení pomocí
HTTP je to například https.
Pokud je číslo portu standardní, nemusí se uvádět. Pro výše zmíněné služby
platí následující porty (ve stejném pořadí): 21, 70, 80 a 23.
Soubory mají opět předem definované typy, které jsou určovány podle jejich
přípony (tj. částí jména za poslední tečkou). Dokumenty v systému WWW mají
příponu .html (protože některé systémy umožňují nejvýše tříznakovou příponu, je
přípustná i .htm), prosté textové soubory .txt, podporované obrázky .jpg
(.jpeg), .gif a .png, applety v Javě .class, šablony dokumentů .css, atd.
HTML
Protože služba vyvíjená Barnersem-Leem byla nová ve všech směrech, bylo potřeba
pro ni definovat i jazyk, kterým by bylo možno poměrně snadno formátovat
dokumenty. Protože se jednalo o dokumenty hypertextové, vyšel vývojový tým ze
SGML (Standard Generalized Markup Language Standardizovaný obecný značkový
jazyk).
HTML (HyperText Markup Language Hypertextový značkový jazyk) se stal jeho
zjednodušenou podmnožinou. Už první verze definovala základní formátování textu
(6 úrovní nadpisů, číslované a nečíslované seznamy, tučné a podtržené písmo,
kurzíva, horní a dolní index, neproporcionální písmo, apod.) s možností
jednoduchého vkládání obrázků a hypertextových odkazů. S postupem doby na sebe
nabral spoustu dalších funkcí, takže dnes již umožňuje téměř tolik, kolik
nabízejí složitější textové editory nebo programy pro DTP.
Vše ovšem nasvědčuje tomu, že ani to už současným nárokům na textovou a
grafickou prezentaci nestačí, protože se začíná vynořovat nový jazyk XML
(Extensible Markup Language Rozšiřitelný značkový jazyk), který umožní ještě
bohatší kombinaci textu s multimédii i propracovanější systém odkazů. Jak to
dopadne, ukáže blízká budoucnost, protože např. dynamické HTML (DHTML),
umožňující průběžné změny webových stránek, se zatím příliš neprosadilo. Hodně
přirozeně záleží nejen na výrobcích prohlížečů (Microsoft už některé funkce XML
zahrnul do 4. verze svého prohlížeče a jeho následovník již má být schopen
tomuto jazyku plně rozumět), ale i na výrobcích editorů, protože XML je už ze
své podstaty o poznání složitější a striktnější než HTML.
8 2118 / pah