Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Internetové technologie Informatika pro ekonomy II přednáška 8
2
Služba WWW HW dotaz (URL) odpověď (HTML) WWW klient (např. Internet Explorer, Netscape Navigator) WWW server (např. Apache) uživatelská stanice server SW
3
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
4
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)
5
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í
6
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
7
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)
8
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
9
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
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... Nadpis... 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 klient (prohlížeč) WWW server URL + data HTML obslužný program data HTML CGI data CGI rozhraní (Common Gateway Interface) – definice způsobu komunikace WWW serveru s obslužnou aplikací (programem)
13
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
14
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 URL 2.POST – data předána skrytě v těle požadavku … …/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
Obecný tvar CGI skriptu Úvodní příkazy Test způsobu předání dat (většinou lze vynechat) #!/bin/bash echo Content-type: echo text/html text/plain … if test $REQUEST_METHOD = GET then Data=$QUERY_STRING else Data=`cat` fi
19
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 " Odpověď " echo " Číslo: $Cislo " echo " Jméno: $Jmeno " echo " Metoda: $REQUEST_METHOD. " echo " "
20
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.
21
Příklady k procvičení #!/bin/bash echo Content-type: text/html echo vstup=`echo $QUERY_STRING | sed ‘s/.*=//’` echo “ ” for i in `grep $vstup STUDENTI` do cislo=`echo $i | cut –f1 –d:` jmeno=`echo $i | cut –f2 –d:` prijmeni=`echo $i | cut –f3 –d:` echo “ ” echo “ UID: $cislo ” echo “Jméno a příjmení: $jmeno $prijmeni ” done echo “ ”
22
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.
23
Příklady k procvičení #!/bin/bash echo Content-type: text/html echo vstup=`echo $QUERY_STRING | sed ‘s/.*=//’` echo “ ” echo “ Název Autor Rok ” echo “ Nakladatel ISBN ” for i in `cat data.txt | grep $vstup` do nazev=`echo $i | cut –f1 –d:` autor=`echo $i | cut –f2 –d:` rok=`echo $i | cut –f3 –d:` nakladatel=`echo $i | cut –f4 –d:` ISBN=`echo $i | cut –f5 –d:` echo “ $nazev $autor $rok ” echo “ $nakladatel $ISBN ” done echo “ ”
24
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.
25
Příklady k procvičení #!/bin/bash echo Content-type: text/html echo vstup=`echo $QUERY_STRING | sed ‘s/.*=//’` echo “ ” for i in `ls | grep $vstup` do prava=`ls –l $i | cut –f1 –d“ ”` echo “ $i $prava ” done echo “ ”
26
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/&.*//'
27
Příklady k procvičení #!/bin/bash echo Content-type: text/html echo vstup=`echo $QUERY_STRING | sed ‘s/.*=//’` echo “ ” cat $vstup | head -10 echo “ Zpět ” echo “ ”
28
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,4 Vytvořte skript, který dodá do prohlížeče jen datum a poslední dva údaje o větru v podobě HTML tabulky.
29
Příklady k procvičení #!/bin/bash echo Content-type: text/html echo echo “ ” cat teploty.txt | cut –f1,5,6 –d”|” | sed ‘s/^/ /’ | sed ‘s/ / /g’ | sed ‘s/$/ /’ echo “ ”
30
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/plain echo cat teploty.txt | grep ^....3.*[1-9]...,.$ | tail -1
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.