Webový server

Technology
12 hours ago
8
4
2
Avatar
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

ProduktVýrobcePočet hostovaných stránekProcentuální podíl
[url= Server|Apache][Apache[/url]]Apache Foundation334,095,10237,00 %
IISMicrosoft244,906,58627,12 %
nginxIgor Sysoev149,967,73316,61 %
GWSGoogle19,622,6242,17 %
ostatní17,1 %

Aktivní webové stránky

ProduktVýrobcePočet hostovaných stránekProcentuální podíl
[url= Server|Apache][Apache[/url]]Apache Foundation86,528,26449,99%
nginxIgor Sysoev27,855,45516,09 %
IISMicrosoft17,289,8559,99 %
GWSGoogle13,182,5017,62 %
ostatní16,31 %

Top milión business webových stránek

ProduktVýrobcePočet hostovaných stránekProcentuální podíl
[url= Server|Apache][Apache[/url]]Apache Foundation467,66446,77%
nginxIgor Sysoev239,35823,94 %
IISMicrosoft115,84211,58 %
GWSGoogle22,1872,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

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top