Unix a Internet 7. Webový server

Slides:



Advertisements
Podobné prezentace
Webové rozhraní pro datové úložiště
Advertisements

HTTP server HTTP server 1 Jak to funguje?
Protokol HTTP (Hypertext Transfer Protocol)
SÍŤOVÉ SLUŽBY DNS SYSTÉM
Pavel Dvořák Gymnázium Velké Meziříčí Počítačové sítě – služba WWW Registrační číslo projektu: CZ.1.07/1.5.00/ Datum: Jazyk: čeština.
Návrh a tvorba WWW Cvičení 6
Základy informatiky Internet Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta.
Analýza síťového provozu
1IT T ŘI PILÍŘE WEBU Ing. Jiří Šilhán. T ŘI PILÍŘE WWW WWW využívá počítačovou architekturu Klient/server, uživatel musí mít nainstalován prohlížeč, který.
Elektronická pošta Elektronická pošta ( ) je obdobou běžné pošty a umožňuje přijímat a distribuovat dokumenty v textové podobě na jednu nebo více.
Internetové technologie Informatika pro ekonomy II přednáška 8.
Internet, WWW, HTML a spol.. Hlavní zásady inženýrství reprodukovatelnost měřitelnost a parametrizovatelnost přenositelnost typizace a standardizace dokumentace.
Návrh a tvorba WWW Přednáška 1
PHP – Základy programování
Aplikace VT v hospodářské praxi internetové technologie Ing. Roman Danel, Ph.D. VŠB – TU Ostrava.
Internet.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
Protokoly a adresy na internetu
Maturitní okruh 22: Úvod do HTML. Značkovací a klasické jazyky Klasické: převládá strukturovaný text (programovací kód), skripty jsou prováděny na straně.
European Computer Driving Licence Modul 7 – Služby informačních sítí Mendelova zemědělská a lesnická univerzita v Brně.
European Computer Driving Licence Modul 7 – Služby informačních sítí Mendelova zemědělská a lesnická univerzita v Brně.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Internet.  Celosvětový systém propojených počítačů  Funkce  Sdílení dat  Elektronická pošta.
Dynamické dokumenty na straně serveru Informatika pro ekonomy II přednáška 8.
PROGRAMOVÁNÍ V PHP PERSONAL HOME PAGES SESSIONS. 2 COOKIES JEDNÁ SE O KRÁTKÉ TEXTOVÉ ŘETĚZCE, JEŽ SI MEZI SEBOU VYMĚŇUJÍ WEBOVÝ SERVER A WEBOVÝ KLIENT.
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
WWW stránky – Úvod Mgr. Lenka Švancarová.
Základní složky systému globálního informačního systému WWW Jednoznačná globální identifikace WWW zdrojů (URL, URI, URN) Standardní jazyk pro vytváření.
TNPW1 Technologie pro publikování na webu Cvičení č. 2 Překlad URL na fyzickou adresu stránky Editor Macromedia Homesite „Hello world“ v XHTML (úvod do.
INTERNET – struktura, fungování a přehled využití
1 I NTERNETOVÁ INFRASTRUKTURA. H ISTORIE SÍTĚ I NTERNET RAND Corporation – rok 1964 Síť nebude mít žádnou centrální složku Síť bude od začátku navrhována.
URL v HTML URL - Unique Resource Locator Příklad:
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
SAMBA umožňuje linuxovému systému sdílení prostředků a služeb prostřednictvím sítě používá SMB (server message block) protocol - identický protokolu.
CZ.1.07/1.4.00/ VY_32_INOVACE_166_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Základy informatiky část 6
Shrnutí Chceme–li připojit PC k Internetu musíme: 1.Zadat adresu DNS serveru (začne pracovat převod IP adresa  symbolické jméno), prakticky začne fungovat.
1 Protokol HTTP (Hypertext Transfer Protocol) HTTP je základem systému „World Wide Web“ (WWW) - Web … HTTP – jednoduchý protokol aplikační vrstvy, transport.
Internetové protokoly Autor: Milan Bílek. Internet Internet je celosvětová systém propojených počítačových sítí. Počítače mezi sebou komunikují pomocí.
INTERNET.
Internetové technologie Informatika pro ekonomy přednáška 7.
Uživatel počítačové sítě
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Internetové technologie Informatika pro ekonomy přednáška 7.
Základní složky systému globálního informačního systému WWW
E- MAIL Ing. Jiří Šilhán. E LEKTRONICKÁ POŠTA NEBOLI vývoj od počátku sítí – původní návrh pouze pro přenos krátkých textových zpráv (ASCII) základní.
Unix a Internet 6. Webový server © Milan Keršlágerhttp:// Obsah: ● WWW, webový.
Jak fungují webové stránky Úvod do HTML (1). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická.
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
Inf WWW – World Wide Web. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo.
Internet (služby Internetu, WWW) Služby Internetu WWW (World Wide Web) – dnes nejrozšířenější služba; spoustě lidí splývá s Internetem jako takovým WWW.
Unix a Internet 9. Samba © Milan Keršlágerhttp:// Obsah: ●
Číslo projektu CZ.1.07/1.5.00/ Kódování materiálu vy_32_INOVACE_inf3_web01 Označení materiálu web01_uvod.pptx Název školy Gymnázium Kladno Autor.
Anotace Materiál je určen pro 1. ročník studijního oboru M/01 PROVOZ A EKONOMIKA DOPRAVY, předmětu Informační a komunikační technologie, inovuje.
FTP-SSL FTP-SSL Martin Dušek Martin Fúsek Josef Vlček.
Transportní vrstva v TCP/IP Dvořáčková, Kudelásková, Kozlová.
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
WWW a HTML Základní pojmy Ivo Peterka.
Internet – pojmy, služby
WWW a HTML Základní pojmy Ivo Peterka.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Seminář 11 DHCP + HTTP + IPTABLES
Internetové technologie
Základní pojmy při používání Internetu
Protokol HTTP (Hypertext Transfer Protocol)
Číslo projektu OP VK Název projektu Moderní škola Název školy
Hypertext Markup Language
Propojování sítí (1) Propojování sítí je možné realizovat, např. pomocí: Repeater: zesilovač, který předává veškeré informace z jedno-ho síťového segmentu.
Web Application Scanning
TELNET, FTP.
Transkript prezentace:

Unix a Internet 7. Webový server Obsah: WWW, webový server, URI (URL+URN) HTTP protokol (GET, POST) HTTPS, SNI přesměrování, virtuální servery dynamické stránky, skriptování, CGI Apache, reverzní proxy © Milan Keršláger http://www.pslib.cz/ke/slajdy 25. 11. 2014 http://creativecommons.org/licenses/by-nc-nd/3.0/

WWW server Tim Berners-Lee (1989) laboratoře CERN – návrh hypertextového systému 1990 – první klient a server klient WorldWideWeb, později nazván Nexus zobrazuje stránky používá tehdy nový HTTP protokol serverová část – CERN httpd odešle na požadavek klientovi data nejprve se lavinovitě rozšířil Gopher od roku 1995 již WWW

WWW World Wide Web dnes označení pro službu původně název prvního webového prohlížeče Nexus „celosvětová pavučina“ používá model klient-server klient – používán uživatelem server – dodává klientovi vyžádaná data dokumenty identifikovány pomocí URI komunikace protokolem HTTP metody HTTP protokolu: GET, POST, HEAD, ...

URI (1) Uniform Resource Identifier jednoznačná identifikace dokumentu v Internetu skládá se z URL a URN URL (Uniform Resource Locator) schéma a doménové jméno: http://www.seznam.cz foo://login:password@example.com:8042 URN (Uniform Resource Name) cesta a další parametry: /over/there/index.dtb?type=animal&name=n arwhal#nose

URI (2) schéma – definuje jméno, typ a další formu zbytku URI schéma://login:heslo@doména:port/path?query#anchor schéma – definuje jméno, typ a další formu zbytku URI login:heslo – umožňuje autentizaci typicky se nepoužívá (vynechává se) doména – doménové jméno port – číslo portu implicitně je http, tj. 80, https je 443, ftp je 21 atd. path – cesta k dokumentu adresáře, název souboru query – umožňuje předat stránce data (metoda GET) anchor – značka uvnitř stránky, kam se nastavit

HTTP Hypertext Transfer Protocol verze 0.9 (původní), 1.0 a 1.1 (aktuální RFC 2616) GET / HTTP/1.0 Host: www.seznam.cz za GET je URN cesta k souboru, název, parametry vždy alespoň lomítko (hlavní stránka) ukončení prázdným řádkem odpověď hlavička a vlastní data pro popis obsahu dat využívá MIME typy

Metody HTTP způsoby získání odpovědi GET běžné získání stránky, součástí jen hlavička parametry součástí URN (omezení max. délkou) POST součástí dotazu je i tělo, ve kterém mohou být data data označena MIME typem (jako odpovědi) HEAD jako GET, ale není odesláno tělo PUT, DELETE, TRACE – typicky nepodporováno

Nejnutnější komunikace GET / HTTP/1.0 Host: www.nekde.cz HTTP/1.1 200 OK Content-Type: text/html Obsah HTML stránky Dotaz klienta Odpověď serveru: hlavička tělo dokumentu Poznámka: horizontálním oddělovačem je prázdný řádek (Enter bez znaku)

Hlavička odpovědi každá položka má vlastní řádek některé definované položky HTTP/1.0 200 OK Content-Type Date Server Cache-Control uživatelské položky začínají na X-

Záznam HTTP přenosu telnet www.pslib.cz 80 Trying 10.200.0.18... Connected to www.pslib.cz. Escape character is '^]'. GET / HTTP/1.0 Host: www.pslib.cz HTTP/1.1 200 OK Date: Wed, 22 Sep 2010 11:46:10 GMT Server: Apache/2.2.3 (CentOS) X-Powered-By: PHP/5.1.6 Set-Cookie: PHPSESSID=g0ml14v2g4ss7sli2m69gsmhm4; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Connection: close Content-Type: text/html ...obsah HTML dokumentu (v prohlížeči „zobrazit zdrojový kód“)

HTTPS HTTP Secure zabezpečený HTTP přenos používá standardně port 443 vložena transparentní SSL/TLS mezivrstva šifrování/dešifrování je prováděno transparentně prohlížeč → HTTP → zašif. → přenos → dešif. → webový server z hlediska aplikace/serveru je komunikace stejná využití asymetrické šifry a elektronického podpisu protistrana může prokázat svoji identitu obvykle ji prokazuje server, ale může i klient přenos důvěry od certifikační autority na protistranu

Využití HTTPS SSL/TLS zajišťuje: privátnost odposlechnutá data není možné přečíst využíváme šifrování a obtížnosti kryptoanalýzy integritu s daty nebylo při přenosu manipulováno tj. lze detekovat změnu dat při přenosu autenticitu lze určit, od koho zpráva pochází využití principu přenosu důvěry

SSL/TLS SSL (Secure Sockets Layer) původní protokol (Netscape, v2.0 v roce 1995) verze 3.0 v roce 1996 odstraněny bezpečnostní problémy návrhu a impl. TLS (Transport Layer Security) TLS 1.0 (1999), RFC 2246 (vlastně SSL 3.1) útok BEAST (2005), exploit (2011) na šifru CBC TLS 1.1 (2006), RFC 4346 (vlastně SSL 3.2) řeší zranitelnost šifry CBC TLS 1.2 (2008), RFC 5246 (vlastně SSL 3.3) MD5-SHA1 nahrazeno → SHA256

Ruční použití SSL/TLS openssl s_client -ign_eof -crlf -connect www.pslib.cz:443 Trying 10.200.0.18... Connected to www.pslib.cz. Escape character is '^]'. GET / HTTP/1.0 Host: www.pslib.cz HTTP/1.1 200 OK Date: Wed, 22 Sep 2010 11:46:10 GMT Server: Apache/2.2.3 (CentOS) X-Powered-By: PHP/5.1.6 Set-Cookie: PHPSESSID=g0ml14v2g4ss7sli2m69gsmhm4; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Connection: close Content-Type: text/html ...obsah HTML dokumentu (v prohlížeči „zobrazit zdrojový kód“)

SNI Server Name Indication problém virtuálních serverů a HTTPS server se prokazuje certifikátem šifrování zahájeno ihned po navázání spojení certifikát obsahuje jméno serveru (www.seznam.cz) název serveru je však sdělen serveru později položka Host: v protokolu HTTP/1.0 SNI umožňuje sdělit jméno serveru dříve tj. ještě před výměnou certifikátů podpora ve všech prohlížečů, nyní i pro servery SNI je rozšíření TLS protokolu

Aliasy vlastnost webového serveru normálně URN odpovídá adresářům u serveru alias umožňuje mapovat URN na odlišná umístění skrývá interní adresářovou strukturu u serveru výhodné pro „hezká“ URN SEO optimalizace orientace uživatele (kategorie zboží) umožňuje udělat z URN parametr vyvolání zdání, že obsah jsou statické stránky omezuje riziko manipulace s parametry URN

Přesměrování server přenese klienta na jiné URI v hlavičce je klientovi předáno nové URI HTTP/1.1 301 Moved Permanently Location: http://www.example.org klient přepíše sám sobě adresu v adresním řádku „automatické přenesení na novou adresu“ různé důvody: změna adresy, změna URN struktury atd. též kódy 300, 302, 303, 307

Virtuální servery více webových serverů na 1 IP adrese potíž v tom, že v GET, POST je jen URN klient přeloží jméno na IP adresu a webový server netuší, z jakého to bylo jména řeší HTTP 1.0 → má v požadavku položku Host: webový server se tak dozví URL (doménové jméno) dnes jsou virtuální servery běžné proto nelze používat HTTP 0.9 každý virtuál má svoje vlastní nastavení jiný kořenový adresář, logy, aliasy atd.

Statické stránky nejjednodušší obsah webového serveru stránka je na disku v souboru server stránku beze změny pošle klientovi snadné dosažení vysokého výkonu omezením pouze rychlostí sítě a souborového systému pro snížení režie je podpora v jádře OS využití systémového volání sendfile() webserver jako jaderný modul (TUX web server) vynechání kopírování dat z page cache do userspace ale je to nebezpečné → lighttpd

Dynamické stránky stránka generována podle požadavku klienta podle aktuálního obsahu databáze titulní stránka internetových novin podle zadání klienta požadavek předán jako URN, parametr v GET či POST server musí spustit nějaký program předání parametrů programu skrze CGI rozhraní výstup programu odeslán klientovi dříve samostatné programy dnes skriptovací jazyky, servlety

Webový formulář vytvářen prvky HTML jazyka <FORM ACTION=“URI“ METHOD=GET> <INPUT TYPE=TEXT NAME=x> <INPUT TYPE=SUBMIT> </FORM> prohlížeč zobrazí vstupní pole a tlačítko odeslání pomocí Enter nebo kliku na tlačítko na serveru vyvolána stránka dle URL URN?x=vstup vstup z formuláře předán metodou GET serveru nestavová záležitost

CGI Common Gateway Interface předání dat od klienta k programu u serveru typicky z webového formuláře pomocí proměnných prostředí (metoda GET) jako standardní vstup (POST, PUT) program generuje výstup výstup je webová stránka odeslaná klientovi problém vzniku nového programu snadné přetížené webového serveru FastCGI → program běží trvale

Skriptování na serveru využití skriptovacího jazyka výpočet se odehraje na straně serveru nevyžaduje kompilaci do binární podoby interpret však zdržuje (prodleva při startu) pohodlné pro vývojáře většinu bezpečnostních děr způsobí vývojáři typicky nedostatečná kontrola vstupů oblíbené vkládání skriptu do HTML stránky PHP → multiplatformní ASP → Microsoft Windows

PHP PHP: Hypertext Preprocesor skriptovací jazyk pro webové stránky (1995) interpret dostupný jako: externí program (podobně jako Perl, Python, bash, …) modul do serveru syntaxe převzata z Perlu (podobné C, JavaScriptu) <html> <head><title>PHP Test</title></head> <body> <?php echo 'Hello World'; ?> </body> </html>

Skriptování u klienta program uvnitř prohlížeče kód přepraven do klienta ze serveru kód je součástí webové stránky JavaScript standardní součást webových prohlížečů AJAX → implementace asynchronní komunikace Java, Flash, Silverlight, … často bezpečnostní komplikace

Cookies klient (prohlížeč) ukládá informace od serveru při další návštěvě informaci serveru předá obchází se tím nestavovost HTTP protokolu server ví, kdo k němu (opět) přichází tj. klient se může „přihlásit“, zahájit „relaci“ cookies mají: omezenou platnost (pak je klient smaže) platnost omezenu na URI (již nelze bez omezení) využívají se pro „špehování“ volba „do not track“ → výsměch

AJAX

Apache nejrozšířenější webový server (viz Netcraft) původně 1993 v NCSA (Illinoiská univerzita) největším konkurentem je MS IIS Microsoft Internet Information Server ve znaku ptačí pero (indiánský symbol) další význam „a patchy server“ (záplatovaný server) open source software (Apache Software Foundation) vlastní OSS licence (Apache License 2.0) modulární struktura mod_ssl, mod_php, mod_python, …

Netcraft.com – market share

Netcraft.com – top milion share

Démon démon je proces běžící na pozadí bez kontaktu s uživatelem uzavřeny standardní proudy (stdin, stdout, stderr) používá se „double fork“ → rodičem se stane init zprávy do logu → syslog → /var/log/... správce počítače by měl sledovat (používá je i jádro) zajišťuje nějakou službu (ve Windows: services) terminálové přihlášení ze sítě: sshd sdílení souborů (NFS, Samba, …), WWW server, ... spouštění a zastavování démonů pomocí skriptů např.: /etc/init.d/httpd restart skripty používá při startu proces init

Logy od Apache záznam činnosti webového serveru klasický formát (nebo podle proxy) ukázka RHEL, CentOS, Fedora: /var/log/httpd/* loguje se přístup (hit) pro každý dotaz zvlášť logy chyb v separátním souboru další analýza logů rozlišení hitů podle návštěvníků analýzy návštěvnosti → ukázka též Google Analytics, Bing Webmaster... vlastní záznamy si vytvářejí vložením skriptu do stránky

Reverzní proxy cache na straně serveru (nginx, Squid, ...) drží často poptávané stránky v paměti důležité pro dynamický obsah reálně se dynamická stránka generuje jen občas problémy s aktuálností řešeny lépe, než cache v prohlížeči webový server i rev. cache spravuje jeden správce i jiná využití skrytí skutečného webového serveru rozložení zátěže mezi více webových serverů přidání SSL (seznam.cz), komprese obsahu apod.

MIME typy Internet media type (dříve MIME typy): součást MIME standardu (RFC 2822 z roku 2001) původně pro národní znaky a přílohy v e- mailech HTTP protokol používá MIME typy: image/jpeg, image/gif, image/png, … text/plain, text/html, … application/javascript, application/ogg application/octet-stream (univerzální „binární“ typ) application/x-tar, application/x-shockwave- flash audio/mpeg, audio/ogg, …