1 / 16

Dynamické dokumenty na straně serveru

Dynamické dokumenty na straně serveru. Informatika pro ekonomy II přednáška 8. Dynamický × statický dokument. Statický dokument – vzhled je neměnný, uživatel si nemůže volit zobrazované informace.

shepry
Download Presentation

Dynamické dokumenty na straně serveru

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. Dynamické dokumenty na straně serveru Informatika pro ekonomy II přednáška 8

  2. 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í činnosti • Dynamický dokument na straně serveru – vytvořen programem, který běží na vzdáleném stroji (komunikace přes CGI rozhraní) • Dynamický dokument na straně klienta – vytvoření a modifikaci zajišťuje prohlížeč (klient)

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

  4. Dynamické dokumentyna straně serveru – 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)

  5. 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 CGI rozhraní, a předá mu data z URL • CGI skript zpracuje data a na výstup pošle výsledný text (vygenerovaný HTML dokument) • WWW server vytvořený dokument zašle klientovi, který ho zobrazí stejným způsobem jako statické dokumenty

  6. Tvar dat předávaných v URL <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 • 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

  7. 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 jmeno=”Jan Kos” …skript.cgi?jmeno=Jan+Kos jmeno=”Tomáš Hála” …skript.cgi?jmeno=Tom%E1%9A+H%E1la

  8. 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č • …a mnohé další (nejdůležitější jsou první dvě)

  9. 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 if test $REQUEST_METHOD = GET then Data=$QUERY_STRING else Data=`cat` fi

  10. Obecný tvar CGI skriptu …skript.cgi?vstup=1&jmeno=Franta+Vopicka • 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 odpovědi echo "<HTML><BODY><H1>Odpověď</H1>" echo "<H4>Číslo: $Cislo</H4>" echo "<H4>Metoda: $REQUEST_METHOD.</H4>" echo "</BODY></HTML>"

  11. 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 gif. 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.

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

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

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

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

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