Webový server
Webový server označuje druh serveru, který v počítačové síti s architekturou klient–server poskytuje klientům, nejčastěji webovým prohlížečům, požadovaný webový obsah specifikovaný webovou adresou (URL), typicky webové stránky obvykle v jazyku HTML, ale též statický text, obrázek či jiný soubor. Pojem webový server může označovat počítač nebo počítačový program (démon), který s klientem komunikuje prostřednictvím protokolu HTTP nebo zabezpečeného HTTPS. Webový server může poskytovat služby ve veřejné síti jako je World Wide Web (internet) nebo v uzavřené, privátní síti (intranet).[1][2]
Nejpoužívanějším webovým serverem vůbec je Apache HTTP Server, následovaný především Internet Information Services a nginx.
Historie
[editovat | editovat zdroj]V roce 1989 Tim Berners-Lee představil nový projekt s cílem zjednodušení výměny informací mezi vědci na bázi hypertextových odkazů. Výsledkem projektu byly dva programy:
- Webový prohlížeč WorldWideWeb
- a první webový server na světě, později známý jako CERN httpd běžící na systému NeXTSTEP.
V letech 1991 a 1994 jednoduchost a efektivita prvních technologií pro surfování a výměnu dat přes World Wide Web pomohla rozšíření na mnoho operačních systémů a mezi různé sociální skupiny, nejprve vědce, později univerzity a průmysl.
V roce 1994 se Tim Berners-Lee rozhodnul pro založení World Wide Web konzorcia (W3C), které mělo regulovat budoucí vývoj a standardizaci mnoha technologií jako jsou HTTP, HTML a jiné.
Obecné vlastnosti
[editovat | editovat zdroj]Jednotlivé webové servery se mohou v různých jednotlivostech značně lišit. Přesto mají několik společných vlastností.
Každý webový server je připojen k počítačové síti a přijímá požadavky ve tvaru HTTP. Tyto požadavky vyřizuje a počítači, který požadavek vznesl, vrací odpověď. Odpověď obvykle představuje nějaký HTML dokument. Může to být ale i dokument v jiném formátu – text, obrázek apod. Odpověď serveru je opět ve tvaru HTTP, je uvozena hlavičkou obsahující stavový kód, za níž následuje samotný obsah.
Stavový kód odpovědi udává, zda byl požadavek vyřízen v pořádku, či zda došlo k nějakým obtížím. Dva nejčastější stavové kódy jsou 200 (OK) a 404 (Not Found). Kódy jsou trojciferná čísla, dělící se do následujících skupin:
- 2xx – úspěšné vyřízení požadavku
- 3xx – problémy spojené s přesměrováním
- 4xx – chyby související s vyřízením požadavku (stránka není dostupná, apod.)
- 5xx – interní chyby serveru
Obvykle server nějakým způsobem protokoluje přijímané požadavky a taktéž zaznamenává případné chyby. To pomáhá správci webového serveru vytvářet statistiky a podle typu a množství požadavků optimalizovat obsah, způsob uložení i způsob prezentace požadovaných dat.
Webový server (program) má téměř vždy nějaké možnosti konfigurace – stanovení kořenového adresáře, z něhož je přístupný obsah poskytovaný on-line, a dále konfigurace pro každý jeho podadresář individuálně, například jaký soubor zpracovat implicitně, obsahuje-li URL pouze daný adresář, nebo v jaké časové zóně se nachází či jaké podporuje jazyky a přípony souborů. Podporuje-li webserver dynamický obsah, je součástí i nastavení interpreterů skriptovacích jazyků, jež tento obsah zpracovávají. Součástí architektury sofistikovanějších webových serverů mohou být různé zásuvné moduly a pokročilé metody řízení požadavků.
Zdroj poskytovaných informací
[editovat | editovat zdroj]Webový server má v zásadě dvě možnosti, jak získávat informace, které vrací klientům:
- jsou to buď předem připravené datové soubory (HTML stránky), které webový server bez změny poskytne klientovi (tzv. statický obsah)
- teprve na základě požadavku klienta jsou data shromážděna (přečtena ze souboru, databáze, nebo nějakého koncového zařízení), zformátována a připravena k prezentaci ve formátu HTML a poskytnuta webovému prohlížeči (tzv. dynamický obsah)
K dynamickému vytváření obsahu se používá celá řada různých technologií (Perl, PHP, ASP, ASP.NET, JSP, Python apod.). Statický obsah je schopen server poskytnout výrazně rychleji než dynamický. Na druhé straně pomocí dynamického obsahu lze poskytovat mnohem větší obsah informací a lze reagovat i na různé „ad hoc“ dotazy klientů. Proto se v praxi v mnoha případech oba způsoby poskytování obsahu kombinují – například cachování, node.js, ….
Průběh zpracování dotazu
[editovat | editovat zdroj]Služeb webového serveru nejčastěji využívají uživatelé internetu prostřednictvím webových prohlížečů. Méně časté využití je např. XML-RPC nebo v případě některých desktopových aplikací, které kontrolují nejnovější verze sebe sama, případně řídí automatické aktualizace.
Odkaz
http://www.example.com/path/file.html
je klientem převeden na HTTP 1.1 požadavek ve tvaru:
GET /path/file.html HTTP/1.1
Host: www.example.com
Webový server na adrese www.example.com přidá tuto cestu k cestě kořenového adresáře příslušného webového serveru (pro Linux typicky /var/www/html
) a výsledkem bude cesta k lokálnímu souboru:
/var/www/html/path/file.html
Poté server soubor přečte (v případě statického obsahu) nebo zpracuje (tj. interpretuje a použije výsledek) a jako odpověď odešle výsledný obsah v případě úspěšného zpracování nebo chybovou hlášku v případě chyby. Celá odpověď je ve formě HTTP hlavičky se stavovou odpovědí, po které následuje výsledný obsah.
Nastavení webserveru
[editovat | editovat zdroj]- výchozí adresář přístupný z internetu
- které přípony přímo posílat
- které přípony zpracovávat a přes které preprocesory
- pro které adresáře vypíše seznam souborů
- MIME typy a jak je zpracovat
- konfigurace modulů (modů)
Přetížení
[editovat | editovat zdroj]Webový server může být přetížen z mnoha důvodů:
- Klasické přetížení (příliš mnoho lidí se připojí ve stejný čas, ale ne z důvodu útoku)
- DDoS útok (může být způsoben i například zranitelností typu XSS zneužitou na velkém množství webů)
- Počítačový vir, který napadne mnoho počítačů a donutí je se připojit
- Internetový bot
- Přetížení fyzické sítě
- Obsah je rozložený na více serverech a některý z nich není dostupný. Všechny dotazy musí obsloužit jen jeden server
Příznaky přetížení
[editovat | editovat zdroj]Přetížení se může projevovat např.:
- pomalou odezvou serveru (od jednotek po stovky s)
- 500, 502, 503, 504 HTTP chyby
- TCP spojení je nuceno se restartovat ještě před tím, než přijde odpověď
- ve výjimečných případech jako odpověď server odešle nekompletní obsah (toto chování je většinou způsobeno chybou)
Techniky pro zamezení přetížení
[editovat | editovat zdroj]- kontrola síťového provozu pomocí firewallů, HTTP traffic managerů a traffic shapingu
- použití webových cache
- použití rozdílných doménových jmen pro statické a dynamické dotazy
- použití rozdílných doménových jmen a/nebo počítačů pro oddělení velkých souborů, aby ty malé mohly být uloženy v cache
- použití více webových serverů na jednom počítači, každý s vlastní síťovou kartou
- použití více počítačů propojených dohromady a navenek se jevících jako jeden velký server
- přidání více hardware (RAM,CPU)
- vyladění použitého software
Podíl na trhu
[editovat | editovat zdroj]Podle posledních průzkumů společnosti Netcraft z listopadu 2015:[3]
Všechny webové stránky
[editovat | editovat zdroj]Produkt | Výrobce | Počet hostovaných stránek | Procentuální podíl |
---|---|---|---|
Apache | Apache Foundation | 334,095,102 | 37,00 % |
IIS | Microsoft | 244,906,586 | 27,12 % |
nginx | Igor Sysoev | 149,967,733 | 16,61 % |
GWS | 19,622,624 | 2,17 % | |
ostatní | 17,1 % |
Aktivní webové stránky
[editovat | editovat zdroj]Produkt | Výrobce | Počet hostovaných stránek | Procentuální podíl |
---|---|---|---|
Apache | Apache Foundation | 86,528,264 | 49,99% |
nginx | Igor Sysoev | 27,855,455 | 16,09 % |
IIS | Microsoft | 17,289,855 | 9,99 % |
GWS | 13,182,501 | 7,62 % | |
ostatní | 16,31 % |
Top milión business webových stránek
[editovat | editovat zdroj]Produkt | Výrobce | Počet hostovaných stránek | Procentuální podíl |
---|---|---|---|
Apache | Apache Foundation | 467,664 | 46,77% |
nginx | Igor Sysoev | 239,358 | 23,94 % |
IIS | Microsoft | 115,842 | 11,58 % |
GWS | 22,187 | 2,22 % | |
ostatní | 15,49 % |
Software
[editovat | editovat zdroj]Nejrozšířenější programy, které zabezpečují službu webového serveru, jsou:
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]- ↑ YEAGER, Nancy J. Web server technology : the advanced guide for World Wide Web information providers. San Francisco: Morgan Kaufmann Publishers xv, 407 pages s. Dostupné online. ISBN 1-55860-376-X, ISBN 978-1-55860-376-9. OCLC 34515149
- ↑ NELSON, William C. Sun web server : the essential guide. Upper Saddle River, N.J.: Prentice Hall 1 online resource s. Dostupné online. ISBN 978-0-13-715332-9, ISBN 0-13-715332-5. OCLC 319430670
- ↑ http://news.netcraft.com/archives/2015/11/16/november-2015-web-server-survey.html
Související články
[editovat | editovat zdroj]- HTTP, HTTPS
- CGI, FastCGI, ASP, PHP
- Webový prohlížeč
- WWW
- Internet, Intranet
- Index v adresáři webserveru
Externí odkazy
[editovat | editovat zdroj]- Obrázky, zvuky či videa k tématu webový server na Wikimedia Commons