Aplikacje WWW Wprowadzenie
Transkrypt
Aplikacje WWW Wprowadzenie
Aplikacje WWW Wprowadzenie Beata Pańczyk na podstawie http://www.e-informatyka.edu.pl/ http://wazniak.mimuw.edu.pl/index.php?title=Aplikacje_WWW Plan wykładu • Składniki architektury WWW: klient HTTP, • • • • • • serwer HTTP, protokół HTTP Rozszerzona architektura WWW - aplikacja WWW, serwer aplikacji, aplikacje komponentowe Język HTML Technologie tworzenia interfejsu uŜytkownika (CSS, XML, XHTML, JavaScript, aplety Java) Protokół HTTP Logika prezentacji (technologie serwletów i szablonów) Logika biznesowa 2 Składniki architektury WWW • Klient HTTP (przeglądarka WWW) • Serwer HTTP (serwer WWW) • Protokół HTTP 3 Interakcja w środowisku WWW http://www.pollub.pl/plany/inf.html www.pollub.pl 4 Zadania klienta HTTP • • • • • Inicjalizowanie połączenia HTTP Pobieranie interfejsu uŜytkownika Prezentacja interfejsu uŜytkownika Interakcja z uŜytkownikiem Buforowanie odpowiedzi (zapisywanie w lokalnym systemie plików, a następnie wykorzystanie do obsługi identycznych, powtórzonych Ŝądań w przyszłości - skrócenia czasu odpowiedzi) • Kryptografia (podniesienia bezpieczeństwa komunikacji - moŜliwe szyfrowanie połączeń 5 sieciowych z serwerami HTTP) Zadania serwera HTTP (serwera WWW) • • • • • Obsługa Ŝądań HTTP Rejestracja Ŝądań Uwierzytelnianie i kontrola dostępu Kryptografia Wybór wersji językowej wysyłanych plików 6 HTTP, URL • Protokół HTTP: • oparty na TCP • komendy tekstowe • bezstanowy, bezsesyjny • Adres URL: http://www.pollub.pl/plany/inf.html 7 Dokumenty statyczne i dynamiczne • Dokument statyczny - gotowy do pobrania plik w systemie plików serwera HTTP • Dokument dynamiczny - dokument generowany na Ŝądanie przez program po stronie serwera HTTP • Aplikacje WWW 8 Aplikacja WWW - przykład 9 Aplikacje WWW - porównanie 10 Rozszerzona architektura WWW 11 Serwer aplikacji • Platforma dla uruchamiania aplikacji WWW • Obsługa komunikacji z warstwą klienta i warstwą danych • Usługi systemowe – transakcje – rejestracja Ŝądań – autoryzacja dostępu – itd. 12 Komponentowe aplikacje WWW 13 Zalety i wady aplikacji WWW • Zalety – Niski koszt urządzeń dostępowych – Wygoda administrowania aplikacjami – Łatwość uŜytkowania – Ochrona własności intelektualnej • Wady – Trudność wytwarzania oprogramowania – Uproszczony interfejs uŜytkownika – Koszt serwerów 14 Język HTML • najwaŜniejszy język definicji dokumentów dla klientów HTTP - umoŜliwia zapis treści dokumentu i równocześnie opis jego układu • Zalety – prostota składni – dostępność przeglądarek • Wady – brak szablonów/wzorców – brak separacji formy i treści – ubogi graficznie 15 Interfejs uŜytkownika I • CSS - preferowany mechanizm formatowania dokumentów HTML • XML - tekstowy format ogólnego przeznaczenia – format publikacji danych w Internecie – format wymiany i składowania danych • XHTML - wersja HTML dostosowana do reguł XML • XSL - język do formatowania dokumentów XML – XSLT – do opisu automatycznej transformacji dokumentu XML do dokumentu o innej strukturze – XSL-FO – słownik znaczników opisujących formatowanie (funkcjonalnie przypomina CSS, ale jest bardziej zorientowany na przygotowywanie dokumentów do druku) 16 Interfejs uŜytkownika II • Formularze HTML - podstawowy mechanizm przekazywania parametrów do aplikacji internetowej • Język JavaScript - przydatne narzędzie zapewniające: – interakcyjność – walidację danych • Aplety Java - wykorzystywane do budowy bogatszego graficznego interfejsu uŜytkownika 17 Protokół HTTP • SłuŜy do transportu dokumentów udostępnianych przez serwery HTTP • Tekstowy, oparty na protokole TCP, domyślny port 80 • Model klient-serwer, styl Ŝądanie-odpowiedź • Po dostarczeniu dokumentu połączenie jest zamykane 18 Komunikaty HTTP – Ŝądanie Pola nagłówkowe Ŝądania 19 Komunikaty HTTP – odpowiedź Pola nagłówkowe odpowiedzi kod zwrotny format ciała odpowiedzi 20 Formaty plików MIME • MIME określa sposób opisu formatów plików • Content-Type: – dokumenty tekstowe: text/* (css, html, plain) – pliki dźwiękowe: audio/* (midi, mpeg, x-wav) – pliki graficzne: image/* (gif, jpeg, png) – pliki wideo: video/* (mpeg, quicktime) – pliki obsługiwane przez dedykowaną aplikację: application/* (pdf, zip) 21 Analiza komunikatów HTTP: Mozilla LiveHTTPHeaders 22 Rozkaz HEAD • HEAD - podobny do GET – reprezentuje Ŝądanie klienta HTTP, jednak w jego wyniku klient otrzymuje wyłącznie wiersze nagłówkowe odpowiedzi HTTP, bez załączonego ciała (dokumentu wynikowego). • umoŜliwia przeglądarce pobranie metadanych opisujących dokument, bez konieczności pobierania pełnej treści dokumentu • główne zastosowania obejmują weryfikowanie poprawności adresów i łączy 23 URL. Rozkaz POST • POST - podobny do GET – reprezentuje Ŝądanie klienta HTTP, lecz do Ŝądania tego dołączone jest ciało, które reprezentuje dane wysyłane przez klienta HTTP do serwera HTTP (np. parametry, plik). • w związku z obecnością ciała Ŝądania, komunikat sieciowy zawiera pola nagłówkowe „Content-Type” i „Content-Length”, a najpopularniejszym formatem przekazywanej treści jest „Content- Type: application/x-wwwform-urlencoded”, oznaczający dane formularza HTML przekształcone do postaci ASCII metodą „URL-encoding” (RFC 1738) 24 Parametry Ŝądania HTTP http://www.pollub.pl/my_app?x=1&y=2 25 HTTPS – protokół bezpieczny • HTTP podatny na podsłuch • HTTPS - odmiana protokołu HTTP wykorzystująca SSL • HTTPS zapewnia: – szyfrowanie Ŝądań i odpowiedzi HTTP – kontrolę integralności Ŝądań i odpowiedzi HTTP – uwierzytelnianie serwera HTTP – opcjonalne uwierzytelnianie klienta HTTP 26 Przebieg połączenia HTTPS https://www.pollub.pl/ 27 Implementacja logiki prezentacji • Zadania logiki prezentacji • Technologie serwletów – programy CGI – serwlety Java • Technologie szablonów – Java Server Pages – PHP – ASP.NET 28 Logika biznesowa • "serce aplikacji" - wykonuje operacje na danych i zapytania SQL przed zaprezentowaniem ich uŜytkownikowi • zwykle zaprogramowana w zarządzanych komponentach 29 Oddzielenie logiki biznesowej od interfejsu • Mała aplikacja (kilka stron) - projektowanie zgodnie z paradygmatem MVC nie jest niezbędne (chociaŜ eleganckie). MoŜna sięgać do logiki biznesowej prosto z interfejsu, w razie modyfikacji logiki, przedefiniować cały interfejs i nie martwić się o poprawność przesyłanych między interfejsem a logiką danych • DuŜa aplikacja (kilkadziesiąt dynamicznie generowanych stron z rozbudowaną logiką i bazą danych) - Model-View-Controller staje się niezbędny i moŜe oszczędzić olbrzymie ilości czasu. 30 Wzorzec projektowy MVC Warstwa modelu (model) • reprezentowany przez klasy stanowiące autonomiczne, niezaleŜne od siebie jednostki • klasy umieszczone w katalogu oddzielnie od reszty aplikacji – rozmieszczenie klas zaleŜne od platformy (Java Servlet czy PHP) • aplikacja moŜe posiadać 2 rodzaje klas: • klasy realizujące kaŜda własną logikę - moŜna je przenosić do innych aplikacji • klasy zawierające specyficzne implementacje tylko dla konkretnej aplikacji (przenoszenie nie wskazane) 31 Wzorzec projektowy MVC Warstwa sterownika i widoku Warstwa sterownika (Controller) • realizuje zadania związane z obsługą Ŝądań kierowanych do aplikacji • pobiera parametry z metod GET lub POST i decyduje jakie działania naleŜy dalej podjąć Warstwa widoku (View) • prezentuje dane i wyniki działania aplikacji w postaci html (w przypadku servletów – strony JSP, w przypadku PHP – skrypty PHP i szablony Smarty) 32