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

Internetové technologie

  • Upload
    karif

  • View
    39

  • Download
    2

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Internetové technologie

Internetové technologie

Informatika pro ekonomy IIpřednáška 8

Page 2: Internetové technologie

Služba WWWHW

dotaz (URL)

odpověď (HTML)

WWW klient(např. Internet Explorer,

Netscape Navigator)

WWW server(např. Apache)

uživatelská stanice

server

SW

Page 3: Internetové technologie

Princip klient–server

• 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

• Klient – zahajuje komunikaci, požaduje spojení

• Port – identifikace služby ve formě čísla, které klient posílá serveru při zahájení komunikace

Page 4: Internetové technologie

Nejznámější porty

• 23 – vzdálený přístup (nešifrovaný, TELNET)• 22 – vzdálený přístup (šifrovaný, SSH)• 25 – elektronická pošta (SMTP)

• 20, 21 – přenos souborů protokolem FTP

• 80 – služba WWW (HTTP)• 110 – vzdálený přístup do schránky (POP3)

Page 5: Internetové technologie

Protokol HTTP

• 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

• HyperText Transfer Protocol

• Základní model: navázání spojení zaslání požadavku klientem zaslání odpovědi serverem uzavření spojení

Page 6: Internetové technologie

Protokol HTTPS

• Zajišťuje šifrovanou komunikaci mezi klientem a 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

Page 7: Internetové technologie

Návratové kódy

• 2xx – úspěch, dotaz byl pochopen a akceptován

• 1xx – informační, požadavek byl obdržen

• 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)

Page 8: Internetové technologie

Omezení HTTP

• 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

• Protokol je bezstavový

• Řešením je přenášení údajů v URL a skrytých polích formuláře

Page 9: Internetové technologie

Dynamický × statický dokument

• Dynamický dokument – tvar a prezentované informace může uživatel ovlivnit svojí činností

• Dynamický dokument na straně serveru – vytvořen programem, který běží na vzdáleném stroji (různé technologie – vsuvky, PHP, CGI...)

• Dynamický dokument na straně klienta – vytvoření a modifikaci zajišťuje prohlížeč (klient)

• Statický dokument – vzhled je neměnný, uživatel si nemůže volit zobrazované informace

• Generovaný dokument – vytvořen počítačem

Page 10: Internetové technologie

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

Page 11: Internetové technologie

Ř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é

Page 12: Internetové technologie

Obslužný program na rozhraní CGI – základní princip

klient(prohlížeč)

WWWserver

URL + data

HTMLobslužnýprogram

data

HTML

CGI

data

• CGI rozhraní (Common Gateway Interface) – definice způsobu komunikace WWW serveru s obslužnou aplikací (programem)

Page 13: Internetové technologie

Zpracování požadavku

http://akela.mendelu.cz/~xyz/skript.cgi?data

• URL dynamického dokumentu na straně serveru se liší v datech, zapsaných za otazníkem• 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 WWW zašle vytvořený dokument klientovi, který ho zobrazí stejným způsobem jako statické dokumenty

Page 14: Internetové technologie

Tvar dat předávaných v URL

• Metoda předání dat (viz formuláře HTML)1.GET – data předána viditelně v URL2.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

Page 15: Internetové technologie

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říkladyvalue=”Jan Kos”…skript.cgi?jmeno=Jan+Kos

value=”Tomáš Hála”…skript.cgi?jmeno=Tom%E1%9A+H%E1la

Page 16: Internetové technologie

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ě)

Page 17: Internetové technologie

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

Page 18: Internetové technologie

Obecný tvar CGI skriptu

• Úvodní příkazy

• Test způsobu předání dat (většinou lze vynechat)

#!/bin/bashecho Content-type: <typ dat>echo

text/htmltext/plain…

if test $REQUEST_METHOD = GET then Data=$QUERY_STRING else Data=`cat`fi

Page 19: Internetové technologie

Obecný tvar CGI skriptu• Získání dat

• Výpis HTML stránky s odpovědí

…skript.cgi?vstup=1&jmeno=Franta+Vopicka

Cislo=`echo $Data | sed ‘s/vstup=//’ | sed ‘s/&.*//’`Jmeno=`echo $Data | sed ‘s/.*jmeno=//’ | sed ‘s/&.*//’`

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>"

Page 20: Internetové technologie

Příklady k procvičení

1. 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.

Page 21: Internetové technologie

Příklady k procvičení

2. 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.

Page 22: Internetové technologie

Příklady k procvičení

3. 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.

Page 23: Internetové technologie

Příklady k procvičení

4. 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/&.*//'

Page 24: Internetové technologie

Příklady k procvičení

5. 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.

Page 25: Internetové technologie

Příklady k procvičení

6. 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/plainechocat teploty.txt | grep ^....3.*[1-9]...,.$ | tail -1