Value - Instytut Informatyki PW
Transkrypt
Value - Instytut Informatyki PW
TIN – zima 2016-2017, Grzegorz Blinowski TIN Techniki Internetowe zima 2016-2017 Grzegorz Blinowski Instytut Informatyki Politechniki Warszawskiej TIN – zima 2016-2017, Grzegorz Blinowski Plan wykładów 2 3 4 5 6, 7, 8 9, 10, 11 12 13 Intersieć, ISO/OSI, protokoły sieciowe, IP Protokoły transportowe: UDP, TCP Model klient-serwer, techniki progr. serwisów Protokoły aplikacyjne: telnet, ftp, smtp, nntp, inne HTTP HTML, XML Aplikacje WWW, CGI, sesje, serwery aplikacji serwlety, integracja z backended SQL Aspekty zaawansowane: wydajność, przenośność, skalowalność; klastering SOAP TIN – zima 2016-2017, Grzegorz Blinowski Aplikacje WWW TIN – zima 2016-2017, Grzegorz Blinowski Wymagania • • • • • • • Otwartość (w sensie obsługi standardów) Skalowalność, Wydajność Stabilność Bezpieczeństwo Integralność transakcji (Ochrona inwestycji ) TIN – zima 2016-2017, Grzegorz Blinowski Aplikacje WWW • Aplikacje Web - nowe ucieleśnienie modelu klient- serwer: – przeglądarka - klient – Serwer: serwer WWW, serwer aplikacji, serwer bazy danych (źródła danych), monitor transakcji Dlaczego aplikacje Web? – Dostępna, powszechna, standardowa technologia – Standardy otwarte - pozwalają na wdrożenie intranetu i ekstranetu - nie możemy zakładać, że klienci (partnerzy) będą się dostosowywać do naszych rozwiązań – B. duża oferta serwerów, narzędzi, itp. – Niski koszt utrzymania klienta - klientem jest przeglądarka lub applet Java, w przypadku awarii lub złego funkcjonowania reinstalacja jest b. prosta - przeglądarka - prosta w obsłudze i administracji, tania, wymienna TIN – zima 2016-2017, Grzegorz Blinowski Thin/fat client Klient - interfejs GUI i "logika biznesowa" "Fat Client" GUI + aplikacja Źródło danych Klient - tylko GUI i prosta weryfikacja danych Serwer aplikacji logika biznesowa "Thin Client" Serwer aplikacji Źródło danych TIN – zima 2016-2017, Grzegorz Blinowski Warstwy aplikacji WWW • Klient: prezentacja, elementarna logika (JavaScript - np. weryfikacja danych wejściowych, obsługa słowników) • Serwer WWW – strony statyczne – (prosty serwer aplikacji) • Serwer Aplikacji – – – – warstwa prezentacji warstwa sesji warstwa logiki (aplikacji) warstwa komunikacji z: backend, innymi S.A., innymi serwerami • Źródła danych – bazy relacyjne – inne bazy danych (n.p. full-text, …) TIN – zima 2016-2017, Grzegorz Blinowski Podstawowe mechanizmy klienckie • Formularze – Podstawowe kontrolki interaktywne: pola tekstowe, przyciski, listy wyboru, checkbox, radio, ... – Dość ubogie w stosunku do kontrolek typowego GUI • JavaScript (ECMA Script) • “Applety” – – – – Java "Komponenty" (inne applety): ActivX, COM, … TIN – zima 2016-2017, Grzegorz Blinowski Formularze HTML • Formularz zawarty między tagami: <form> </form> • atrybuty formularza: – <form method="GET|POST" action="/path/program" enctype="application/x-www-form-urlencoded|multi-part/formdata"> – brak akcji - zgłoszenie do aktualnego URL • Elementy formularza: – statyczne zmienne ukryte - hidden – kontrolki "input" • pola tekstowe zwykłe (text) i z ukrytym tekstem (password) • radio, checkbox • przyciski specjalne: submit i reset (przywróć) – Pola tekstowe (textarea) – listy wyboru - jednokrotne (select), wielokrotne(select multiple) TIN – zima 2016-2017, Grzegorz Blinowski HIDDEN <input type="hidden" name="Nazwa" Value="Wartosc"> • Tworzy element formularza, który nie jest w żaden sposób wyświetlany w przeglądarce • Elementy hidden wykorzystywane są do przenoszenia danych między formularzami • Przykładowo: – aktualnego języka – identyfikatora użytkownika – danych sesji, itp. TIN – zima 2016-2017, Grzegorz Blinowski INPUT TEXT, PASSWORD <input type="text" name="Nazwa" Value="tekst poczatkowy" size="nnn" maxsize="mmm" > <input type="password" name="Nazwa" Value="tekst poczatkowy" size="nnn" maxsize="mmm" > Tworzy jednolinijkowe pole tekstowe Jest to domyślny typ elementu input Value określa tekst domyślny zawarty w polu Size określa rozmiar widocznego pola, a maxsize maksymalną długość przyjmowanego tekstu • Dla password echo tekstu ma postać "*" • Uwaga - password w żaden sposób nie zabezpiecza danych przed podsłuchem! • • • • TIN – zima 2016-2017, Grzegorz Blinowski INPUT CHECKBOX <input type="checkbox" name="Nazwa" Value="wartosc" [checked]> Tworzy binarny przełącznik Z formularza zwracane są tylko te przełączniki, które zostały zaznaczone • Zwracana jest watość podana w value • Można utworzyć wiele przełączników o tej samej nazwie, wartości zaznaczone zostaną wtedy zgrupowane • • TIN – zima 2016-2017, Grzegorz Blinowski INPUT RADIO <input type="radio" name="Nazwa" Value="wartosc" [checked]> • • • • Tworzy przełącznik typu "1-z-wielu" Grupa przełaczników radio identyfikowana jest wspólną nazwą W obrębie grupy tylko jeden przełącznik może być zaznaczony Zwracana jest watość podana w value (jedna) TIN – zima 2016-2017, Grzegorz Blinowski INPUT BUTTON <input type="Button" name="Nazwa" Value="Opis"> • • Tworzy przycisk o nazwie name z opisem value Przycisk nie przekazuje informacji jako rezultat działania formularza, może być jednak użyty poprzez zdarzenia JavaScript TIN – zima 2016-2017, Grzegorz Blinowski INPUT SUBMIT <input type="submit" Value="wartosc"> <input type="reset" Value="wartosc"> • Submit: – Tworzy przycisk zgłaszający formularz – Domyślny przekazywany tekst to "Submit" • Reset: – Naciśnięcie powoduje powrót wszystkich wartości formularza do domyślnych TIN – zima 2016-2017, Grzegorz Blinowski INPUT FILE <input type="file" name="nazwa" value="nazwapliku" accept="lista typów MIME"> Tworzy dialog wyboru pliku otwierany przyciskiem "browse" Plik zostanie wczytany i przesłany do serwera dopiero w momencie zgloszenia formularza • value określa prefiks dla nazwy pliku • accept zawiera listę typów MIME, która zostanie przesłana do serwera • encoding przybierze wartość multi-part/form-data (domyślny typ to application/form-www-urlencoded) • • TIN – zima 2016-2017, Grzegorz Blinowski TEXTAREA <textarea name="nazwa" cols="nn" rows="rr" wrap="off|virtual| physical|soft|hard"> tekst domyslny </textarea> • • • Tworzy pole tekstowe składające się z wielu linii cols, rows: określa rozmiary pola wrap: określa sposób łamania tekstu: – off - użytkownik musi sam wcisną "Enter" – virtual (soft) - automatycznie wstawione znaki końca wiersza nie będą przesłane do serwera – physical (hard)- automatycznie wstawione znaki końca wiersza będą przesłane do serwera TIN – zima 2016-2017, Grzegorz Blinowski SELECT <select name="nazwa" size="nnn" multiple> <option value="wartosc" label="lab" selected>tekst</option> …. </select> • • • Tworzy listę wyboru multiple - Lista umożliwia wybór wielu elementów na raz size określa sposób prezentacji i rozmiar: – 0 - lista rozwijalna w dół – >=1 - lista opcji, przewijana gdy liczba pozycji > size • Option – zwraca tekst objęty tagami lub value (jeśli obecne) – selected - domyślnie wybrany TIN – zima 2016-2017, Grzegorz Blinowski GET i POST • GET – dane przekazane w formularzu przekazywane są bezpośrednio w żądaniu - tj. w URL – stosowane jest URL encoding (spacje, inne znaki nielegalne w URL) – zastosowanie - proste formularze • POST – dane przekazane w formularzu przekazywane są w request entity – zastosowanie - tam gdzie wymagane przekazanie większej porcji danych TIN – zima 2016-2017, Grzegorz Blinowski GET i POST GET POST • b. proste do przetworzenia po stronie serwera • zgłoszone dane widoczne jako URL w przeglądarce (wada?, zaleta?) • rezultat zgłoszenia może być dodany jako zakładka • Nie można zgłaszać plików (html-file-upload) • wielkość danych ograniczona do kilkuset bajtów - kilku KB • nieco trudniejsze do przetworzenia po stronie serwera • zgłoszone dane nie są widoczne • rezultat zgłoszenia nie może być dodany jako zakładka • można zgłaszać pliki (htmlfile-upload) - kodowanie MIME • wielkość danych nieograniczona