+ All Categories
Transcript
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


Top Related