1 / 25

Internetové technologie

Internetové technologie. Informatika pro ekonomy II přednáška 8. HW. uživatelská stanice. server. dotaz (URL). odpověď (HTML). WWW klient (např. Internet Explorer, Netscape Navigator). WWW server (např. Apache). SW. Služba WWW. Princip klient–server.

karif
Download Presentation

Internetové technologie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internetové technologie Informatika pro ekonomy II přednáška 8

  2. HW uživatelská stanice server dotaz (URL) odpověď (HTML) WWW klient(např. Internet Explorer,Netscape Navigator) WWW server(např. Apache) SW Služba WWW

  3. Princip klient–server • Klient – zahajuje komunikaci, požaduje spojení • Server – poskytuje odezvu klientovi • Démon – program, který neustále běží na serveru a očekává výzvy, při zachycení spustí obsluhu • Protokol – scénář komunikace mezi klientem a serverem, stanovuje pořadí předávání otázek a odpovědí, realizace prostřednictvím portu • Port – identifikace služby ve formě čísla, kteréklient posílá serveru při zahájení komunikace

  4. Nejznámější porty • 20, 21 – přenos souborů protokolem FTP • 23 – vzdálený přístup (nešifrovaný, TELNET) • 22 – vzdálený přístup (šifrovaný, SSH) • 25 – elektronická pošta (SMTP) • 80 – služba WWW (HTTP) • 110 – vzdálený přístup do schránky (POP3)

  5. Protokol HTTP • HyperText Transfer Protocol • Slouží pro přenos objektů libovolného typu (stránky, obrázky, ...) mezi webovým serverem a prohlížečem (klientem) • Jednoduchý síťový protokol aplikační vrstvy, vlastní přenos dat zajišťuje protokol TCP • Základní model: navázání spojení  zaslání požadavku klientem  zaslání odpovědi serverem  uzavření spojení

  6. Protokol HTTPS • Zajišťuje šifrovanou komunikaci mezi klientema serverem • Slouží k přenosu informací, které nesmí být nikým odposlechnuty (číslo kreditní karty, heslo) • Pro šifrování se používá kombinace asymetrickéa symetrické šifry se 128bitovým klíčem • SSL (Secure Socket Layer) – norma pro šifrovaný přenos vytvořená společností Netscape

  7. Návratové kódy • 1xx – informační, požadavek byl obdržen • 2xx – úspěch, dotaz byl pochopen a akceptován • 3xx – přesměrování, klient musí provést další akce, aby získal požadovaný dokument • 4xx – chyba klienta, byl položen chybný dotaz nebo klient nemá oprávnění získat dokument požadovaný v dotazu (např. 401 = Unauthorized, 403 = Forbidden, 404 = Not Found) • 5xx – chyba na straně serveru, není schopen obsloužit požadavek (500 = Internal Server Error)

  8. Omezení HTTP • Protokol je bezstavový • Server nemá stálé spojení s klienty a nemůže je proto jednoznačně identifikovat • Velké komplikace pro webové aplikace, které vyžadují stavovou informaci – např. nákupní košík • Řešením je přenášení údajů v URL a skrytých polích formuláře

  9. Dynamický × statický dokument • Statický dokument – vzhled je neměnný, uživatel si nemůže volit zobrazované informace • Dynamický dokument – tvar a prezentované informace může uživatel ovlivnit svojí činností • Dynamický dokument na straně klienta – vytvoření a modifikaci zajišťuje prohlížeč (klient) • Dynamický dokument na straně serveru – vytvořen programem, který běží na vzdáleném stroji (různé technologie – vsuvky, PHP, CGI...) • Generovaný dokument – vytvořen počítačem

  10. Vlastnosti dynamických dokumentů na straně serveru • Schopnost řešení složitých a rozsáhlých úloh, používání souborového systému a výkonu serveru • Nízká závislost na klientovi (prohlížeči) a jeho schopnostech, klient pouze stránku zobrazuje • Veškeré požadavky a data se včetně odpovědí přenášejí přes síťové spojení (protokol TCP) • Nelze reagovat na události vzniklé u klienta (pohyb myši, stisk klávesy apod.) – to řeší dynamické dokumenty na straně klienta

  11. Řešení dynamických dokumentů • Technologie PHP – (Pretty Human Pages, Rasmus Lerdorf), jazyk integrovaný do HTML • ...<h1>Nadpis</h1> • <? příkazy PHP... ?>... • Modul serveru – například PHP, Perl. Rychlejší odezva • Obslužný program na rozhraní CGI – možnost práce v libovolném jazyce, obecné, avšak někdy časově a výpočetně náročné

  12. Obslužný program na rozhraní CGI – základní princip CGI URL + data data klient(prohlížeč) WWWserver obslužný program HTML HTML data • CGI rozhraní (Common Gateway Interface) – definice způsobu komunikace WWW serveru s obslužnou aplikací (programem)

  13. Zpracování požadavku • URL dynamického dokumentu na straně serveru se liší v datech, zapsaných za otazníkem http://akela.mendelu.cz/~xyz/skript.cgi?data • Server podle rozšíření .cgi pozná, že se jedná o rozhraní CGI, a předá mu data z URL • Obslužný program zpracuje data a na výstup pošle výsledný text (vygenerovaný dokument) • Server WWWzašle vytvořený dokument klientovi, který ho zobrazí stejným způsobem jako statické dokumenty

  14. Tvar dat předávaných v URL • Metoda předání dat (viz formuláře HTML) • GET – data předána viditelně v URL • POST – data předána skrytě v těle požadavku <form action=skript.cgi method=get> <input type=text name=prvni>…<br> <input type=text name=druhy>…<br> <input type=submit value=Odeslat> </form> …/skript.cgi?prvni=neco&druhy=neco

  15. Kódování URL • Mezera se v URL zobrazí jako + (někdy %20) • Znaky, které v URL něco znamenají, se kódují jako %cc, kde cc jsou dvě šestnáctkové číslice ordinálního čísla znaku. (Unicode %cccc) • Příklady value=”Jan Kos” …skript.cgi?jmeno=Jan+Kos value=”Tomáš Hála” …skript.cgi?jmeno=Tom%E1%9A+H%E1la

  16. Proměnné prostředí • QUERY_STRING – obsahuje data předaná v URL • REQUEST_METHOD – metoda předání dat • SERVER_NAME – IP adresa (jméno) serveru • SERVER_PROTOCOL – jméno a verze protokolu • SERVER_PORT – číslo portu hostitele • CONTENT_TYPE – typ dotazovaných dat • HTTP_USER_AGENT – prohlížeč • REMOTE_ADDR– IP adresa klienta • …a mnohé další (nejdůležitější jsou první dvě)

  17. Předávání dat na rozhraní CGI • Vstup dat do obslužného programu – z proměnné QUERY_STRING v případě, že jsou data předávána metodou GET – ze standardního vstupu v případě, že jsou data předávána metodou POST • Výstup dat z obslužného programu – výpis na standardní výstup

  18. text/html text/plain … Obecný tvar CGI skriptu • Úvodní příkazy #!/bin/bash echo Content-type: <typ dat> echo • Test způsobu předání dat (většinou lze vynechat) if test $REQUEST_METHOD = GET then Data=$QUERY_STRING else Data=`cat` fi

  19. …skript.cgi?vstup=1&jmeno=Franta+Vopicka Obecný tvar CGI skriptu • Získání dat Cislo=`echo $Data | sed ‘s/vstup=//’ |sed ‘s/&.*//’` Jmeno=`echo $Data | sed ‘s/.*jmeno=//’ |sed ‘s/&.*//’` • Výpis HTML stránky s odpovědí echo "<HTML><BODY><H1>Odpověď</H1>" echo "<H4>Číslo: $Cislo</H4>" echo "<H4>Jméno: $Jmeno</H4>" echo "<H4>Metoda: $REQUEST_METHOD.</H4>" echo "</BODY></HTML>"

  20. Příklady k procvičení • Navrhněte HTML formulář a odpovídající skript na straně serveru, který ze zadání alespoň části jména nebo příjmení studenta zobrazí jeho fotografii, UID, celé jméno a příjmení. Předpokládejte, že fotografie studentů jsou v jednom adresáři v souborech, jejichž jméno je tvořeno číslem UID a rozšíření je jpg. Předpokládejte, že údaje o všech studentech (UID, jméno a příjmení) jsou v jediném textovém souboru, jehož přesný tvar navrhněte podle potřeby.

  21. Příklady k procvičení • Navrhněte dynamický dokument HTML, do jehož formuláře může uživatel vložit část názvu nebo autora knihy. Odpovědí je úplná informace o všech knihách, které vyhovují zadanému řetězci. Odpověď do HTML bude mít tvar tabulky s pěti sloupci, v nichž budou přehledně vypsány údaje o názvu, autorovi, roku vydání, nakladatelství a ISBN.

  22. Příklady k procvičení • Navrhněte HTML formulář a odpovídající skript na straně serveru s následující činností: Uživatel zadá do formuláře nějaký řetězec a po stisku odesílacího tlačítka skript poskytne informaci o všech souborech aktuálního adresáře, jejichž jména obsahují zadaný řetězec. Výstup bude formátován do HTML tabulky, v níž bude první sloupec tvořen plným jménem souboru a druhý bude naplněn deseti znaky vyjadřujícími typ souboru a přístupová práva ve stejném tvaru, jako zobrazí příkaz ls –l.

  23. Příklady k procvičení • Napište dynamický HTML dokument, do něhož uživatel zadá název souboru a příslušný skript zobrazí prvních 10 řádků tohoto souboru, který se nachází v aktivním adresáři. Ve stránce generované skriptem rovněž uveďte odkaz zpět na formulářovou stránku. K filtraci klientových dat použijte program sed ve tvaru: sed 's/xxx=//' | sed 's/&.*//'

  24. Příklady k procvičení • Je dán soubor teploty.txt s následující strukturou:– datum,– teplota v 7 hod.,– teplota ve 14 hod.,– teplota v 21 hod.,– směr větru ve stupních,– rychlost větru v m/s,– tlak v hPa.Příklad dat: 31.01.2003|16|19|18|16|105|1009,4Vytvořte skript, který dodá do prohlížeče jen datum a poslední dva údaje o větru v podobě HTML tabulky.

  25. Příklady k procvičení • Sestavte skript, který zobrazí poslední řádek, který se vztahuje k měsíci březnu a kdy byl naměřen tlak alespoň 1000 hPa. Tvar dat, předaný do prohlížeče, zůstane textový.Příklad dat: 31.01.2003|16|19|18|16|105|1009,4 #!/bin/bash(řešení je skryto) echo Content-type: text/plain echo cat teploty.txt | grep ^....3.*[1-9]...,.$ | tail -1

More Related