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