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ń sieciowych z serwerami HTTP) 5
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 URL. 23
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