OpenSource Apache versus Microsoft IIS

Drtivou většinu internetového provozu stále ovládají 2 nejznámější HTTP servery – OpenSource Apache a Microsoft IIS (Internet Information Server). Každý v podstatě představuje jeden ze dvou předních fenoménů programování webových aplikací – PHP a .NET. Kterému dát přednost a proč?


Marek Erneker

Ačkoliv internet nejsou pouze webové stránky, představují tyto jeho nezanedbatelnou a nejvyužívanější část. Webové stránky nám nabízí široké možnosti zprostředkování informací, tedy jeden ze základních principů internetu a tak je nutné provozu HTTP serveru věnovat řádnou pozornost.

Souboj dvou řešení

Svět již dlouhá léta ovládají dvě jména HTTP serverů – Apache a IIS. Zatímco Apache je spojován především se skriptovacím jazykem PHP, IIS představuje zcela jiný směr, a to Microsoft technologii .NET.
Současný vývoj PHP se po úspěšné implementaci podstatné části objektového modelu orientuje hlavně na opravu chyb a sjednocování podporovaných modulů/rozhraní, zatímco .NET se věnuje hlavně další integraci tříd a funkcionalit zjednodušujících programátorům další práci.

Rozdíly ve filosofii

Třebaže práce s oběma programovacími jazyky se znatelně liší a tedy se tyto i těžko porovnávají, jsou již nyní patrné zvětšující se rozdíly. Přístup obou serverů je odlišný v podstatě od počátku až do konce. Apache byl od začátku vyvíjen jako OpenSource pod licencí GPL a zpracovává každý požadavek klienta jako samostatný úkol. Naproti tomu IIS, které je součástí většiny Windows distribucí pro PC a je vydáván pod společnou licencí s OS Windows, je schopno zpracovávat souvisle požadavky stejného klienta nad stejným paměťovým blokem. Programátor v .NETu pak vyvíjí webovou aplikaci jako celek, nikoliv jako oddělené a na sebe více či méně navazující jednotlivé události vyvolávané požadavkem klienta. Zjednodušuje se tak např. držení proměnných, ale třeba i otevřených souborů či připojení k DB.

Z toho logicky vyplývá, že stále více programátorů se věnuje právě .NETu. Odlišný přístup při programování webu jako celistvé a objektové aplikace zvyšuje kvalitu výsledku. Již několik let máme možnost IIS spravovat i skrze definovaný formát XML či příkazy PowerShellu, což usnadňuje správu celého systému a tvorbu vlastních nástrojů.

Apache: otevřenost

Apache naproti tomu vyniká svou otevřeností a množstvím tzv. modulů, které slouží k rozšíření jeho schopností. Podporuje vznik vlastních Apache modulů a jejich užití pro speciální případy konkrétního provozovatele. Výjimkou není ani zásah do samotných zdrojových kódů a úprava některých vlastností tohoto serveru. Skriptovací jazyk PHP, jež se pro mnohé programátory stal modlou a ještě častěji byl prvním krokem do programovacího světa, je pak jen dalším z modulů. Podobně jako je .NET spojován především s IIS, je PHP spojováno s Apache (ačkoliv provoz na jiných webových serverech je bez větších obtíží možný také).
Oba produkty se od sebe každopádně vzdalují a jejich role je čím dál více doplňující, nikoliv zastupující. Jednoznačně rozhodujícím kritériem při volbě mezi nimi je pak programovací jazyk daného projektu a tomu odpovídající prostředí jak vývoje, tak i následného provozu.

Alternativy

Bylo by chybou zapomenout na další produkty, jako jsou např. Mathop nebo lightHTTP. Nelze předpokládat, že by některý z nich chtěl konkurovat Apache nebo IIS v počtu obsluhovaných webových aplikací. Jejich význam spočívá hlavně ve speciálních aplikacích jako např. poskytování statického obsahu souborů nebo při realizaci speciálních programovacích jazyků, u nichž bývá webový server součástí celého produktu.
Situace ve využití webových serverů se velmi podobá odvěké válce mezi OS. Apache představuje komunitu OpenSource, jehož nejčastější užití je na OS Linux, a IIS zase typické komerční řešení společnosti Microsoft. Zatímco Microsoft jednoznačně vede v užití mezi domácími počítači, Linux kraluje na poli serverových počítačů, čemuž pak odpovídá i počet hostovaných doménových jmen.

O autorovi

Marek Erneker pracuje ve společnosti IGNUM pátým rokem. Před svým jmenováním výkonným ředitelem působil jako hlavní programátor a člen úzkého vedení společnosti. Je zodpovědný za každodenní řízení aktivit společnosti a její další rozvoj ve všech oblastech působnosti.

Exit mobile version