Webový server
Author
Albert Flores[url= Server][Soubor:Webserver.jpg|náhled|300px|Schéma komunikace]]
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 url=HTTPS. +more]Webový server může poskytovat služby ve veřejné síti jako je [[World Wide Web[/url]] (internet) nebo v uzavřené, privátní síti (intranet).
Nejpoužívanějším webovým serverem vůbec je [[Apache[/url]], následovaný především Internet Information Services a nginx.
Historie
V roce [url=d běžící na systému [[NeXTSTEP][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[/url]].
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
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ěď. +more 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). +more 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í. +more 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í
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. +more dynamický obsah).
K dynamickému vytváření obsahu se používá celá řada různých technologií (Perl, PHP, ASP, ASP. +moreNET, 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
Služeb webového serveru nejčastěji využívají uživatelé [url=/1.1 Host: www.example.com
Webový server na adrese www. example. +morecom přidá tuto cestu k cestě [[Adresář (informatika)|kořenového adresáře][internet]]u 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[/url]] 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. +more Celá odpověď je ve formě HTTP hlavičky se stavovou odpovědí, po které následuje výsledný obsah.
Nastavení webserveru
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í
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í
Přetížení se může projevovat např.: * pomalou [url= chyby * [[TCP][Latence|odezvou]] serveru (od jednotek po stovky s) * 500, 502, 503, 504[/url]] 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í
kontrola síťového provozu pomocí [url= traffic managerů a traffic shapingu * použití webových [[cache][firewall]]ů,[/url]] * 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
Podle posledních průzkumů společnosti Netcraft z listopadu 2015:
Všechny webové stránky
Produkt | Výrobce | Počet hostovaných stránek | Procentuální podíl |
---|---|---|---|
[url= Server|Apache][Apache[/url]] | 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
Produkt | Výrobce | Počet hostovaných stránek | Procentuální podíl |
---|---|---|---|
[url= Server|Apache][Apache[/url]] | 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
Produkt | Výrobce | Počet hostovaných stránek | Procentuální podíl |
---|---|---|---|
[url= Server|Apache][Apache[/url]] | 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
Nejrozšířenější programy, které zabezpečují službu webového serveru, jsou: * [url= Server][Apache[/url]] * Internet Information Services * Nginx * Sun Java System Web Server
Odkazy
Reference
Související články
HTTP, HTTPS * CGI, FastCGI, ASP, PHP * Webový prohlížeč * WWW * Internet, Intranet * Index v adresáři webserveru
Externí odkazy
Kategorie:Webové servery Kategorie:Servery Kategorie:HTTP Servery