Tworzenie serwisów internetowych



Podobne dokumenty
CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Tworzenie aplikacji internetowych E14

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Aplikacje WWW Wprowadzenie

Technologie internetowe

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Współczesne serwisy internetowe. Wykład 1 Dr Krzysztof Podlaski

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Microsoft Management Console

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

SpedCust 5 instrukcja instalacji

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Pracownia internetowa w każdej szkole. Opiekun pracowni internetowej SBS 2003 PING

API transakcyjne BitMarket.pl

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

WYKŁAD 1 SYSTEMY CMS CZĘŚĆ 1

Wybrane działy Informatyki Stosowanej

Sieci komputerowe cel

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Wybrane działy Informatyki Stosowanej

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

PERSON Kraków

Aplikacje internetowe i rozproszone - laboratorium

Wyzwania bezpieczeństwa nowoczesnych platform nauczania zdalnego

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Regulamin korzystania z Systemu invooclip przez Adresata i Odbiorcę

Ajax a bezpieczeństwo aplikacji webowych. Jakub Wierzgała

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Polityka prywatności strony internetowej wcrims.pl

Protokół DHCP. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

Kancelaris - Zmiany w wersji 2.50

1 Wprowadzenie do J2EE

Języki programowania wysokiego poziomu WWW

Instrukcja Obsługi STRONA PODMIOTOWA BIP

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

Automatyzacja procesu publikowania w bibliotece cyfrowej

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

InsERT GT Własne COM 1.0

Programowanie w Internecie

OpenLaszlo. OpenLaszlo

Elementy i funkcjonalno

Opis instalacji systemu Intranet Komunikator

System nagłośnieniowy i dźwiękowy system ostrzegawczy Bosch Praesideo

Sieci komputerowe. Definicja. Elementy

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Rozwiązywanie nazw w sieci. Identyfikowanie komputerów w sieci

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Poniżej instrukcja użytkowania platformy

KONFIGURACJA PRZEGLĄDAREK

Sieci komputerowe. Wykład 8: Warstwa zastosowań: FTP i HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

Microsoft Windows GDI

Aplikacje Internetowe termin dodatkowy

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wybrane działy Informatyki Stosowanej

TIN Techniki Internetowe zima

Pracownia internetowa w ka dej szkole (edycja 2004)

Zainstalowana po raz pierwszy aplikacja wymaga aktualizacji bazy danych obsługiwanych sterowników.

Zdalne odnawianie certyfikatów do SWI

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Wykład 2. Budowa komputera. W teorii i w praktyce

STEROWNIKI NANO-PLC NA PRZYKŁADZIE STEROWNIKA LOGO!

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

Bazy danych i strony WWW

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

O autorze... 9 Wprowadzenie... 11

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0

Warszawa, r.

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

elektroniczna Platforma Usług Administracji Publicznej

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o.


Instrukcja programu PControl Powiadowmienia.

UWAGA! PRZECZYTAJ NAJPIERW:

MUltimedia internet Instrukcja Instalacji

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Zarządzanie sieciami SN Seria Easergy Wykrywanie uszkodzeń i zdalne sterowanie

Regulamin serwisu internetowego ramowka.fm

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

O autorze 11 O recenzentach 13 Przedmowa 15

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Tomasz Greszata - Koszalin

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

KONFIGURACJA PRZEGLĄDAREK. Poniższa konfiguracja dedykowana jest dla Bankowości Internetowej SGB

Systemy mikroprocesorowe - projekt

Ewidencja abonentów. Kalkulacja opłat

Transkrypt:

Tworzenie serwisów internetowych Dr in. Marek Mi osz (c) M.Mi osz 1

Plan (1) Serwisy i aplikacje internetowe typologia i problemy Przegl d technologii Cykl ycia aplikacji internetowej Metodyka WSDM (ang. Web Site Design Method) Architektury aplikacji internetowych: MVC (ang. Model-View-Controller) PCMEF (ang. Presentation-Control-Mediator-Entity- Foundation) XWA (ang. extensible Web Architecture) J zyk WebML TSI (c) M.Mi osz 2/90

Plan (2) - Wybrane aspekty serwisów internetowych U yteczno serwisu i jej uzyskiwanie Pozycjonowanie serwis ów Bezpiecze stwo aplikacji internetowych Szkielety aplikacji Systemy zarz dzania tre ci CMS (ang. Content Management Systems) Multimedia w serwisach internetowych Wzorce projektowe TSI (c) M.Mi osz 3/90

Serwisy internetowe (WWW) Proste, statyczne prezentacyjne Problemy z zarz dzaniem tre ci (znajomo narz dzi), ograniczony odbiorca, trudno ci w pozyskaniu informacji, brak sprz enia zwrotnego Dynamiczne z mo liwo ci personalizacji Zarz dzanie tre ci przez specjalny interfejs, tre umieszczana w bazie danych, mo liwo wyszukiwania i dostarczania spersonalizowanej tre ci Aplikacje internetowe Wprowadzanie danych przez u ytkownika i prezentowanie tych danych innym u ytkownikom TSI (c) M.Mi osz 4/90

Obszary zastosow a Prezentacja firm i os ób (blogi) Serwisy informacyjne portale horyzontalne, wertykalne, wewn trzne Serwisy komunikacyjne (fora dyskusyjne) Aplikacje biznesowe (i nie tylko) og ólnie dost pne (np. rezerwacja/zakup, e -biznes) Aplikacje intranetowe (klasyczne aplikacje wewn trzfirmowe, wykorzystuj ce technologie internetowe) TSI (c) M.Mi osz 5/90

Wyzwania w tworzeniu serwisów internetowych Zapewnienie atwo ci piel gnacji i utrzymywalno ci serwisu Integracja ró nych róde danych i aplikacji (nawet tych jeszcze nieistniej cych;-)) Umo liwienie efektywnej wsp ó pracy osób o ró nych specjalizacjach (np. grafik ów, programistów, autorów tre ci, adminów) Uproszczenie implementacji rozbudowanych interakcji u ytkownika z systemem TSI (c) M.Mi osz 6/90

Zasada 4P w aplikacjach Prawdziwe (dostarcza w a ciwe informacje) Personalizowane (w a ciwym ludziom) Przejrzyste (we w a ciwy sposób) Punktualnie (we w a ciwym czasie) Szczególnie wa na dla aplikacji internetowych TSI (c) M.Mi osz 7/90

Inne problemy Standaryzacja Przeno no oprogramowania Ró norodno u ytkowników Szybko czy (opó nienia) Du e chwilowe obci enia i wspó bie no Zapewnienie wysokiej dost pno ci Zapewnienie bezpiecze stwa danych i u ytkowników wobec anonimowo ci klientów TSI (c) M.Mi osz 8/90

Wzrost zagro e bezpiecze stwa aplikacji Powszechna dost pno aplikacji Anonimowi klienci Przeno no oprogramowania Stosowanie standard ów (ogólnie znanych) Wysoki poziom abstrakcji danych Jawno kodu (HTML, JavaScript) Skomplikowane j zyki programowania oraz konfiguracje wykonawcze (np. MySQL serwer + PHP parser + Apache + pliki HTML, CSS i inne) TSI (c) M.Mi osz 9/90

Sk adniki architektury WWW Klient HTTP (przegl darka WWW) Serwer HTTP (serwer WWW) Protokó HTTP 1. danie HTTP Zasoby Klient HTTP 2. Odpowied HTTP Zasób Serwer HTTP TSI (c) M.Mi osz 10/90

Zadania klienta HTTP Inicjowanie po czenia HTTP (poprzez URL) Pobieranie danych z serwera Prezentacja danych (interfejsu) Interakcja z u ytkownikiem Buforowanie danych z serwera (kontrola spójno ci z serwerem) Szyfrowanie-deszyfrowanie (HTTPS) TSI (c) M.Mi osz 11/90

Zadania serwera HTTP Obs uga da HTTP Rejestracja da Uwierzytelnienie i kontrola dost pu Szyfrowanie-deszyfrowanie transmisji Wybór wersji j zykowej wysy anych dokumentów (wg. danych z dania HTTP) TSI (c) M.Mi osz 12/90

Protokó HTTP (warstwa aplikacji) HTTP Hypertext Transfer Protocol Wykorzystuje TCP (warstwa transportowa) Znakowe polecenia i komunikaty Transfer danych tekstowych i binarnych Model: danie odpowied (pull-based) Bezstanowo Bezsesyjno URI (nowa) lub URL (stara ma nazw hosta): http://<host>[:<port>] [<path/resource>[?<query>]] TSI (c) M.Mi osz 13/90

URL / URI Uniform Resource Locator (Identifier) Standard: http://www.ietf.org/rfc/rfc1738.txt i rfc2396.txt Standard: wy cznie znaki alfanumeryczne i kilka specjalnych (; /? : @ & = + $, ) Znaki niedozwolone: Spoza ASCII Steruj ce: ENTER, Esc, Null Znaki niebezpieczne: <> ^ ~ [ ] { } \ Kodowanie procentowe (URL Encoding): %cc (ccyfra heksadecymalna), np. %20 SPACE (ASCII kod: 32), a % koduje si jako %25 TSI (c) M.Mi osz 14/90

Zasób statyczny a dynamiczny Statyczny gotowy do pobrania plik umieszczony w systemie plików serwera HTTP Dokument dynamiczny generowany przez oprogramowanie wsp ó pracuj ce z serwerem HTTP Dokumenty z o one wymagaj wielu plików (zawieraj w sobie informacje nt. w czonych elementów i ich formatowania) Aplikacje WWW TSI (c) M.Mi osz 15/90

Aplikacja internetow a Kod wykonywany na serwerze, rezultat dostarczany do serwera HTTP Manipulowanie danymi przez klienta Wspó praca z serwerem bazy danych i innych us ug Dane pobierane przy pomocy formularzy HTML i przesy ane metod GET lub POST Bogate aplikacje internetowe RIA (ang. Rich Internet Application) TSI (c) M.Mi osz 16/90

RIA RIA to aplikacje internetowe, których wygl d i funkcjonalno zbli one s do tradycyjnych programów komputerowych RIA przenosi przetwarzanie danych potrzebnych do utworzenia interfejsu u ytkownika do klienta, aczkolwiek cze danych przechowuje na serwerze Uruchamia si w przegl darce internetowej Nie wymaga instalacji Pracuje w bezpiecznym rodowisku, tzw. piaskownicy (ang. Sandbox) Technologie: Java, JavaScript/AJAX, Flash, ActiveX TSI (c) M.Mi osz 17/90

Aplikacja internetow a typowa architektura Zasoby lokalne Wtyczki Przegl darka.ini Klient Strony statyczne Multimedia Programy BD Serwer WWW Serwer aplikacji Serwer BD.ini.ini.ini Serwer Aplikacja Inne serwery.ini TSI (c) M.Mi osz 18/90

Serwer aplikacji Platforma uruchomieniowa aplikacji WWW Obs uga komunikacji z warstw serwera WWW i BD (niekiedy wbudowany serwer WWW) Dostarcza us ug systemowych: Utrzymanie sesji Rejestracja da Autoryzacja dost pu Przyk ady: BEA Weblogic, JBOSS, IBM WebSphere, Tomcat, Sun Java WebServer TSI (c) M.Mi osz 19/90

Architektura logiczna aplikacji Podzia aplikacji na warstwy Modele: Monolityczny 2 warstwowy: Prezentacja + Logika biznesowa MVC: Model Widok Sterownik TSI (c) M.Mi osz 20/90

Zalety aplikacji internetow ych Niski koszt strony klienckiej Standardowo konfiguracji klienta Wygoda administrowania aplikacjami atwo u ytkowania Niedost pno kodu (nawet skompilowanego) TSI (c) M.Mi osz 21/90

Wady aplikacji internetow ych Trudno wytwarzania (ró norodno technologii, j zyków) Trudno w konfiguracji wielu warstw Uproszczony interfejs (ale RIA) Koszt serwerów Obni enie bezpiecze stwa danych TSI (c) M.Mi osz 22/90

HTML podstawa warstwy klienta J zyk znaczników (tekstowy) Modyfikowany i rozwijany: XHTML (HTML4), XML Rozszerzenia: CSS, XSL extensible Stylesheet Language (cz ciowa separacja formy i tre ci) Standaryzacja: W3Consortium Dokument: plik HTML + za czniki (pobierane na danie przegl darki) TSI (c) M.Mi osz 23/90

Formularz HTML Fragment dokumentu HTML Zawiera typowe kontrolki Jedyny mechanizm przekazania danych od klienta do aplikacji internetowej (nazwy elementów i ich warto ci) TSI (c) M.Mi osz 24/90

Kontrolki formularza (przypomnienie) type= <nazwa> w znaczniku <input> Nazwy: text, radio, password, checkbox, file Przyciski: submit i reset Inne znaczniki: <textarea rows= n cols= m > <select> w po czeniu z <option> <hidden> Atrybuty: name (obowi zkowy), value, size, readonly (yes no), checked (yes no), multiple (yes no) TSI (c) M.Mi osz 25/90

Wys anie danych z formularza Atrybut action - URI odbiorcy Atrybut method metoda wysy ania danych: GET: dane kodowane w adresie URL (znakowe, ograniczenie d ugo ci. np. do 2000 zn.; zale ne od przegl darki, zakaz niektórych znaków, kodowanie %) POST: dane w ciele komunikatu HTTP TSI (c) M.Mi osz 26/90

JavaScript Prosty, obiektowy j zyk skryptowy wykonywany przez klienta HTTP Wspierane przez przegl darki (ale nie w komórkach, palmtopach, przegl darkach tekstowych) Wprowadzony przez Netscape Communic., ró ne dialekty (ECMAScript, standard 1997) Zastosowanie: RIA, walidacja danych z formularzy, interakcyjno Zanurzony (osadzony) w HTMLu <script> <noscript>... </noscript> - dla przegl darek nie obs uguj cych TSI (c) M.Mi osz 27/90

Osadzenie JavaScriptu Znaczniki: <script>... </script> Funkcje (wielokrotnie dost pne) w sekcji <head> Kod jednorazowy wewn trz <body> Do czanie zewn trznych plików *.js (URL): <script src= host.pl/nazwa.js /> Powi zanie funkcji ze zdarzeniami tam gdzie zdarzenia TSI (c) M.Mi osz 28/90

Document Object Model - DOM Opis reprezentacji dokumentu HTML/XML w postaci drzewa elementów Opisuje te przegl dark TSI (c) M.Mi osz 29/90

DOM Standard W3C Interfejs do manipulowania elementami dokumentu (po za adowaniu dokumentu tworz si obiekty w hierarchii), stanem przegl darki i okna Specyfikuje zdarzenia (s te w przegl darkach niekompatybilne zdarzenia) pochodz ce od: Myszy (onclick, ondblclick, onmousedown,...) Klawiatury (onkeypress, onkeydown, onkeyup) Obiektów i ramek (onload, onabort, onerror, onresize, onscroll) Formularzy (onselect, onchange, onsubmit,...) TSI (c) M.Mi osz 30/90

Obiekt window Okno przegl darki Tworzony automatycznie Metody: open(), close() alert(), confirm(),prompt() setinterval(), settimeout() print() scrollto(), scrollby(), resizeto(), resizeby() TSI (c) M.Mi osz 31/90

Obiekty komponenty window document umo liwia manipulacj ca ym dokumentem (open(), clear(), write(), close()) jak i jego elementami (wygl d, zachowanie) location aktualny adres URL (assign(), reload(), replace()) history tablica odwiedzonych URL (back(), forward(), go()) navigator reprezentuje klienta HTTP (javaenabled()) Zawieraj te atrybuty dost pne dla programów JavaScript TSI (c) M.Mi osz 32/90

JavaScript - zastosowania Weryfikacja (walidacja) danych w formularzach HTML Otwieranie nowych okien (w tym komunikatów) Nawigacja za pomoc przycisków Reakcja na zdarzenia interfejsu Budowa rozwijanych menu Wada: ujawnienie kodu TSI (c) M.Mi osz 33/90

Aplety Java Programy w Java wykonywane przez klienta HTTP (posta pó skompilowana) Wymagaj wirtualnej maszyny Java (JVM) wtyczka (ang. Plug-in) do przegl darki TSI (c) M.Mi osz 34/90

Wady apletów Java Wymagaj JVM Opó nienia w wykonaniu ( adowanie VMJ) Transfer programu do klienta HTTP Ograniczony dost p do rodowiska klienta (ze wzgl dów bezpiecze stwa) brak mo liwo ci czytania, tworzenia, zapisu sprawdzania istnienia plik ów/katalogów, nawi zywania komunikacji, nas uchiwania, uruchamiania lokalnych program ów itp. TSI (c) M.Mi osz 35/90

Zalety apletów Java Pó skompilowany kod jest przenaszalny Wi kszo przegl darek wspiera Wielokrotne u ycie nie wymaga transmisji danych (kod przechowywane w pami ci podr cznej) Odci enie serwera HTTP ale doci enie klienta (wzrost skalowalno ci rozwi za ) TSI (c) M.Mi osz 36/90

RIA w apletach Java Bogaty interfejs zawieraj cy: tradycyjne elementy (pola tekstowe, listy rozwijane, przyciski itd.), ale te panele, wska niki post pu, kalendarze, zegary, suwaki, liczniki, macierze element ów itp. Biblioteki gotowych kontrolek: AW T (ang. Abstract Windowing Toolkit), Swing i SW T TSI (c) M.Mi osz 37/90

Protokó HTTP Transport dokument ów, da i danych Tekstowy Wykorzystuje TCP, port 80 Ka dorazowo po spe nieniu dania (wys ania pojedynczego zasobu) po czenie jest zamykane -> bezstanowo, bezsesyjno -> utrudnienie w tworzeniu transakcyjnych serwis ów internetowych TSI (c) M.Mi osz 38/90

Struktura dania HTTP Wiersz pocz tkowy zawiera polecenie typu: GET ścieżka/plik.html HTTP/1.1 Pola nag ówkowe (jedno w jednym wierszu): Zawieraj metadane: <nazwa pola>: <warto pola> Dok adna lista: RFC2068 Host, User-Agent, Accept, Accept- Charset, Accept-Language, Authorization, If-Modified-Since, Referer itd. TSI (c) M.Mi osz 39/90

Inne polecenia dania HEAD - pobiera informacje o zasobie, stosowane do sprawdzania dost pno ci zasobu PUT - przyj cie danych w postaci pliku przesy anych od klienta do serwera POST - przyj cie danych przesy anych od klienta do serwera (np. wysy anie zawarto ci formularzy, przekszta conych do ASCII URL Encoding) DELETE - danie usuni cia zasobu, dost pne dla uprawnionych u ytkowników OPTIONS - informacje o opcjach i wymaganiach istniej cych w kanale komunikacyjnym TRACE - diagnostyka, analiza kana u komunikacyjnego CONNECT - danie przeznaczone dla serwerów proxy pe ni cych funkcje tunelowania TSI (c) M.Mi osz 40/90

Struktura odpow iedzi HTTP Wiersz pocz tkowy zawiera kod zwrotny: HTTP/1.0 200 OK Inne kody: 404 (Not Found), 500 (Server Error) pe na lista w RFC2068 lub http://en.wikipedia.org/wiki/list_of_http_status_codes Pola nag ówkowe (jedno w jednym wierszu): Date: <data> Server: <nazwa> Last-Modified: <data> i inne Content-Length: <ilo bajtów> 1** - kody informacyjne 2** - kody poprawne 3** - kody przekierowania 4** - b d klienta 5** - b d serwera Content-Type: <format wg. MIME> Cia o odpowiedzi (po pustym wierszu: CR/LF) - zawarto zasobu, pojedynczego pliku serwera TSI (c) M.Mi osz 41/90

Formaty zasobów Specyfikacja MIME (ang. Multipurpose Internet Mail Extensions) definiuje sposób opisu formatów plików RFC1521 Pocz tkowo zdefiniowany dla poczty elektronicznej Format: <typ dok>/<podtyp> Przyk ady: text/html text/css audio/mpeg image/gif image/jpeg video/mpeg video/quicktime application/pdf application/zip TSI (c) M.Mi osz 42/90

Autoryzacja dost pu Basic Authentication Kod odpowiedzi serwera HTTP: 401 Authorization Required Przegl darka pobiera <Nazw > i <has o>, czy w a cuch i do cza do pola nag ówków zakodowany a cuch: Authorization: Basic jakisciagznakowascii Kodowanie: Base64 (b.proste, podzia na 6b, przedstawienie w postaci ASCII z tablicy, znane i odwracalne) TSI (c) M.Mi osz 43/90

Cookies (1) Czym s? Pliki tekstowe przechowywane u klienta HTTP (konieczno udost pnienia opcji zapisu) W pami ci (czas ycia = -1) Przechowuj (nazwa+warto ) dane: Nazwa ciasteczka Domena Czas ycia Inne (aplikacja) TSI (c) M.Mi osz 44/90

Cookies (2) Zapis na danie serwera: Set-Cookie: nazwa=wartość; expires=data; path=ścieżka; domain=domena Przyk ady: eprawniktrackingd1ca0080273ad8e676db26cc 6d1463e5eprawnik.pl/prawo/1536378315673629919984122061352029901880* finfolasturl/file/pagecarrierchart.html%3f31500%2c0%2c192.168.0.1/ m ain/0428038745629628039146554971229626028*fmenulas turlhttp%3a// 192.168.0.1/j xmenu.html%3f0%2c7%2c0%2c0%2c0%2c0%2c0%2c0% 2C0192.168.0.1/ main/0428038745629628039146554971229626028* TSI (c) M.Mi osz 45/90

Sesje z Cookie 1. danie HTTP 2. Odpowied HTTP z Set-Cookie: Id=123 3. Id=123 Klient 4. danie HTTP z Cookie: Id=123 5. danie HTTP z Cookie: Id=123 6. danie HTTP z Cookie: Id=123 Serwer HTTP Dysk TSI (c) M.Mi osz 46/90

Buforowanie dokumentów Klient HTTP buforuje dokumenty na dysku lokalnym Problem przy powtórnym pobraniu: czy aktualny? Kontrola spójno ci bufora: Czas wa no ci (Expires: <data>) Data ostatniej modyfikacji (w daniu: If-Modified- Since: <data>; odpowied : 304 Not Modified) Identyfikator wersji (w daniu: If-None-Match: <wersja>; odpowied : 304 Not Modified) TSI (c) M.Mi osz 47/90

Utrzymanie po czenia Cz sto pojedyncze danie musi by realizowane w postaci ca ej serii da HTTP (z o one dokumenty) HTTP 1.1 wprowadza podtrzymanie po czenia sieciowego (ang. Persistent Connection) przez klienta HTTP domy lnie. W HTTP/1.0 rozszerzenie o pole: Keep-Alive (np. Keep-Alive: timeout=15, max=100) Silne zagro enie atakami typu: DoS (ang. Denial of Service) TSI (c) M.Mi osz 48/90

HTTP Proxy Aplikacja po rednicz ca w komunikacji pomi dzy klientem HTTP a serwerem HTTP Cel: Zapora ogniowa (Firewall) Buforowanie dokumentów Udost pnienie Internetu u ytkownikom sieci lokalnej Typy: Przezroczyste (Transparent HTTP Proxy) nie modyfikuj komunikatów i odpowiedzi Nieprzezroczyste modyfikuj pola, adresy, lub zawarto ci dania/odpowiedzi (np. usuwaj wybrane s owa, t umacz ) TSI (c) M.Mi osz 49/90

HTTP - bezpiecze stwo Jawny tekst Komendy, parametry, zmienne Cookie i dokumenty czytelny tekst Has a kodowane w znany, prymit ywny sposób (odwracalny, bez zmiennych kluczy) Mo liwo : przej cia, zmiany w locie, podszycia si TSI (c) M.Mi osz 50/90

HTTPS bezpieczny protok ó HTTPS szyfrowany protok ó Wykorzystuje warstw SSL (szyfrowanie, kontrola integralno ci i uwierzytelnienie serwera, a tak e klienta jak trzeba) Klucz powinien by uwierzytelniony (przez urz d certyfikacji zdefiniowany w kliencie HTTP) Uwierzytelnienie klienta przez serwer -> danie przes ania serwerowi certyfikatu TSI (c) M.Mi osz 51/90

Sesja HTTPS Je li certyfikat z y, czyli: -Niezgodna nazwa serwera z pozyskan DNS -Wystawca certyfikatu nieznany -Data wa no ci up yn a TSI (c) M.Mi osz 52/90

Lokalne proxy (Local Proxy) Dzia a lokalnie na stacji klienta jako serwer HTTP po rednicz cy pomi dzy klientem a serwerem zdalnym Adres 127.0.0.1 i port proxy nale y skonfigurowa w przegl darce Przechwytuje i modyfikuje ruch w locie Najbardziej znany: www.webproxy.com (zablokowane), ale Odysseus (dost pny min. www.bindshell.net/tools/odysseus) TSI (c) M.Mi osz 53/90

Jak dzia a lokalne proxy? HTTP HTTPS (1) Brak szyfrowania 127.0.0.1 Przegl darka Klient Lokalne proxy HTTP HTTPS(2) Mo liwo podgl du i modyfikacji w locie Serwer TSI (c) M.Mi osz 54/90

Zastosowanie lokalnego proxy Analiza komunikacji pomi dzy klientem a serwerem Badanie aplikacji internetowych pod k tem w ama ;-) W amywanie si, ataki na aplikacje, narz dzia hakerów itd. TSI (c) M.Mi osz 55/90

Standaryzacja HTTP RFC2068: Hypertext Transfer Protocol HTTP/1.1 RFC1738: Uniform Resource Locators RFC1521: MIME Part One RFC3548: The Base16, Base32 and Base64 Data Encoding RFC2165: HTTP State Management Machanism TSI (c) M.Mi osz 56/90

Technologie server-side CGI Common Gateway Interface (uruchamianie skrypt ów zwykle w Perlu, Phyton, PHP czy VB, polece SO) ASP - Active Server Pages (MS, VB Script lub C#); obecnie ASP.NET JSP Java Server Pages Java EE (Java Servlet, EJB) Oracle 10 PHP TSI (c) M.Mi osz 57/90

Typy technologii server-side Technologie serwletów (programy generuj ce kompletny dokument): CGI Java EE Technologie szablonów (wplecenie polece w istniej cy dokument; na etapie wykonania: osadzanie w statycznym dokumencie rezultatów wykonania kodu): JSP PHP ASP.NET TSI (c) M.Mi osz 58/90

Typowe problemy aplikacji Stanowo i interaktywno interfejsu u ytkownika Nawigacja pomi dzy stronami Walidacja danych Bezpiecze stwo Obs uga wielu j zyków Obs uga ró nych typów urz dze ko cowych Pozostaj istotne w technologiach server-side TSI (c) M.Mi osz 59/90

Specyfikacja CGI Common Gateway Interface - najstarsza specyfikacja aplikacji od strony serwera Serwer HTTP na danie klienta mo e uruchomi aplikacj jako nowy proces SO Aplikacja CGI tworzy kod HTML, kt óry jest przekazywany do klienta Aplikacja CGI mo e komunikowa si z innymi aplikacjami, ale to nie jest standaryzowane TSI (c) M.Mi osz 60/90

Architektura i dzia anie CGI TSI (c) M.Mi osz 61/90

Programy CGI Dowolny j zyk programowania (C, Pascal, Perl, skrypt UNIX czy BAT) Serwer HTTP uruchamia program CGI jako nowy proces w SO (po zako czeniu zamyka proces) Parametry wej ciowe: Zmienne rodowiskowe (predefiniowany zestaw) Wej cie standardowe (systemowe) Dokument wynikowy zwracany jest poprzez standardowy wyj cie systemowe Niska wydajno (za ka dym razem nowy proces; a co je li 1000?) próba poprawienia: FastCGI Niskie bezpiecze stwo mo liwo uruchomienia polece SO TSI (c) M.Mi osz 62/90

Zmienne rodowiskowe Kilkana cie predefiniowanych Odczyt zadanie programisty Dost pne w ka dym j zyku programowania Przyk adowe: SERVER_SOFTWARE (nazwa i nr wersji serwera) SERVER_NAME (nazwa serwera lub IP) REQUEST_METHOD (GET lub POST) QUERY_STRING ( a cuch z URL, od?) REMOTE_ADDR (IP klient a) TSI (c) M.Mi osz 63/90

Tworzenie nag ówka HTTP przez program CGI Program CGI generuje kompletny nag ówek odpowiedzi HTTP: Typ: Non-Parsed Headers Nazwa pliku CGI zaczyna si od: nph- Nag ówek dodaje serwer HTTP. Program mo e jedynie przekaza pola (i ich warto ci): Content-type (format dokumentu wynikowego w MIME, np. text/html) Location (adres URL dla przekierowania dania) Status (kod zwrotny odpowiedzi, np. 200 lub 404 lub 401) TSI (c) M.Mi osz 64/90

Parametry dania HTTP a CGI Rozkaz GET: zmienna QUERY_STRING Rozkaz POST: Standardowe wej cie Posta : Jeden a cuch (zgodny z URL Encoding) Konieczne jest programowe wyodr bnienie parametrów i ich warto ci name=milosz+marek&year=1958&time=18%3 A30 TSI (c) M.Mi osz 65/90

http://images.google.pl/imgres?imgurl=http://www.gim5grud z.pl/obrazki/content/abs/a bs2005/ob/3i.jpg&img refurl=http ://www.gim5grudz.pl/articles.php %3Fid%3D115&h=556&w =800&sz=105&hl=pl&start=39&tbnid=YgM 4my9RcLUEfM: &tbnh=99&tbnw=143&prev=/images%3fq%3dmi%25c5% 2582osz%2Bmarek%2BECDL%26start%3D20%26gbv%3D 2%26ndsp%3D20%26hl%3Dpl%26sa%3DN

Serwlety Java Dystrybucja: Java Platform, Enterprise Edition (Java EE, poprzednia nazwa: J2EE) Serwlet: aplikacja Java wykonywana po stronie serwera Wymagane specjalne rodowisko uruchomieniowe Serwery Java EE: JBOSS, IBM WebSphere, Jakarta/Apache Tomcat, Oracle Application Server, Sun Java W eb Server, Borland Visibroker TSI (c) M.Mi osz 66/90

Architektura serwletów Java TSI (c) M.Mi osz 67/90

Tworzenie serwletu Java Do czenie bibliotek (obowi zkowo: javax.servlet.http.* oraz java.io.*) Klasa (w pliku) dziedzicz ca od klasy: javax.servlet.http.httpservlet np. public class My extends HttpServlet { Zaimplementowane metody: doget() (wywo ywana przy GET) dopost() (wywo ywana przy POST) init() (przy adowaniu serwleta, zwykle adowanie konfiguracji, po czenie z BD) destroy() (przy usuwaniu) TSI (c) M.Mi osz 68/90

Cykl ycia serwletu Java 1. Klient przekazuje danie do serwera HTTP 2. Serwer HTTP kieruje danie do serwera aplikacji Java EE 3. Serwer aplikacji pobiera klas serwletu z dysku i tworzy jej obiekt (tzw. obiekt serwletu) 4. Serwer aplikacji wywo uje metod init() (je li by a zdefiniowana) 5. Serwer aplikacji wywo uje metod doget() a jej rezultat przekazuje do serwera HTTP Serwlet pozostaje w pami ci. Kolejne dania omijaj pkt. 3 i 4. W chwili zatrzymywania serwera aplikacji wykonywana jest metoda destroy() TSI (c) M.Mi osz 69/90

W a ciwo ci doget() (1) doget() otrzymuje dwa obiektowe argumenty (request i response) wraz z zestawem metod niezb dnych do przekazywania danych Cz interfejsu obiektu request zachowuje kompatybilno ze zmiennymi CGI: request.getservername() request.getremoteaddr()... TSI (c) M.Mi osz 70/90

W a ciwo ci doget() (2) Obiekt request posiada tak e metody odczytu parametr ów dania HTTP: request.getparameter() request.getparameternames() request.getparametervalues() request.getcookies() TSI (c) M.Mi osz 71/90

W a ciwo ci doget() (3) Obiekt response posiada metody umo liwiaj ce tworzenie nag ówka odpowiedzi: addheader(n,v), addcookie(c), senderror(v), sendredirect(url) i wiele innych Dost pne s te metody tworzenia cia a odpowiedzi oraz do czania plików Metody doget() i dopost() maj taki sam interfejs Mo na je implementowa tak samo lub ró nie TSI (c) M.Mi osz 72/90

Java EE obs uga Cookies Obiekty request i response posiadaj metody obs ugi Cookie W Java EE zdefiniowana jest klasa Cookie (javax.servlet.http.cookie) Obiekty w klasie Cookie maj niezb dne metody obs ugi ciasteczek TSI (c) M.Mi osz 73/90

Java EE emulacja sesji HTTP bezstanowy HTTPSession mechanizm emulacji sesji: przydzia identyfikatora sesji (w nag ówku) wpis w tablic sesji: identyfikator sesji i stan (obiekty) obs uga dania: na podstawie id sesji Java EE udost pnia serwletowi stan sesji (obiekty z tablicy) Bezpiecze stwo usuni cie wpisu z tablicy (serwlet programowo, wg czasu, wg braku nieaktywno ci) zakaz dost pu do innych sesji HTTPSession dostarcza wiele metod zarz dzania sesj TSI (c) M.Mi osz 74/90

Technologie szablon ów Wplecenie polece j zyka programowania w istniej cy dokument HTML Na etapie wykonania: Polecenia wykonuje rodowisko (parser) Rezultaty wykonania s osadzane w dokumencie HTML Dokument jest przekazywany do serwera HTTP i dalej do klienta jako dokument statyczny Typowe technologie: SSI (Server Side Includes) ASP i ASP.NET (Active Server Pages) JSP (Java Server Pages) PHP TSI (c) M.Mi osz 75/90

SSI istota technologii Najprostsza i stara technologia Istota: w czone w kod HTML proste dyrektywy, uruchamiane na serwerze i zast powane wynikiem Sk adnia: <!--#dyrektywa parametr=wartość...--> Dyrektywy: include (w czenie pliku) exec (uruchomienie programu) echo (wy wietlenie warto ci zmiennej rodowiskowej) Konieczno konfiguracji serwera HTTP i rozró nialno plików do parsowania (np. *.shtml) Technologia niebezpieczna (exec) TSI (c) M.Mi osz 76/90

ASP istota technologii Wprowadzona przez Microsoft w IIS Interpretowane po stronie serwera wstawki w kodzie (VBScript - domy lnie, JScript) Wstawki programowe odwo uj si do predefiniowanych obiektów: Application ASPError Request Response Server Session TSI (c) M.Mi osz 77/90

ASP sk adnia i stosow alno ASP wprowadzi o sk adni ze znakiem %: <%...%> (zagnie d enie kodu) <%=...%> (zwrócenie warto ci wyra enia) <%@...%> (ró ne dyrektywy) Typowe rozszerzenie plik ów: *.asp Obecnie nie rozwijana zast piona przez ASP.NET (bardziej nowoczesna) TSI (c) M.Mi osz 78/90

ASP - przyk ad <%@ language= VBScript %> <HTML><BODY> <% response.write( Ala ma ) %> <%= kota %> </BODY></HTML> http://serwer/plikala.asp?zwierz=kot TSI (c) M.Mi osz 79/90

<HTML><BODY> Ala ma <%=request.querystring( zwierz )%>a </BODY></HTML> http://serwer/plikala.asp?zwierz=kot <HTML><BODY> Ala ma kota </BODY></HTML>

Platforma Microsoft.NET.NET Framework tworzenie i uruchamianie aplikacji desktopowych, internetowych i Web Services Podstawowe zalety: Kompilacja do kodu po redniego (ang. Microsoft Intermediate Language MSIL) rodowisko uruchomieniowe (ang. Common Language Runtime CLR) Microsoft Visual Studio (zintegrowane rodowisko programistyczne IDE; programowanie wizualnozdarzeniowe) TSI (c) M.Mi osz 80/90

Struktura Microsoft.NET TSI (c) M.Mi osz 81/90

ASP.NET czy: Dynamiczne strony www Web Services Zalety: Mo liwo wykorzystania ze wszystkich j zyków obs ugiwanych przez CLR Kod kompilowalny (szybko, wykrywanie b dów) Web Forms programowanie wizualno- zdarzeniowe w aplikacjach internetowych Separacja HTML i kodu programu (ang. Code Behind schowanie kodu) TSI (c) M.Mi osz 82/90

ASP.NET - architektura Przechowywanie stanu sesji - bezpiecze stwo Buforowanie stron - wydajno TSI (c) M.Mi osz 83/90

ASP.NET - j zyki programowania C# (C sharp) wzorowany na C++ i Java preferowany w.net; brak wska ników, wzorców i wielodziedziczenia; s : interfejsy, przestrzenie nazw (te same nazwy k las w ró nych przestrzeniach), przeci anie operatorów (jak w C++), mo liwo definiowania kilku klas w jednym pliku Visual Basic.NET do atwy i produktywny obiektowy, zbli ony sk adniowo do VB TSI (c) M.Mi osz 84/90

JSP Java Server Pages Technologia szablon ów czenia kodu HTML (XML) z kodem Java Rozszerzenie technologii serwletów Obecnie: JSP 2.1 cz Java EE 5 Platform Zasady podobne do ASP TSI (c) M.Mi osz 85/90

dyrektywa deklaracje <%@ page language= java %> <HTML><BODY> <jsp: akcja serwera.../> <%! Double zmienna=10; %> <% polecenie skryptlet; polecenie;%> <%= wyra enie %>

Schemat dzia ania JSP TSI (c) M.Mi osz 86/90

Technologia szablon ów Szablon <HTML>... Witaj ${imie}!... </HTML> Kod Java {... ctx.put( imie, Marek );... } Silnik szablonów Wynik <HTML>... Witaj Marek!... </HTML> Open source dla JSP: Velocity project Apache Jakarta FreeMarker WebMacro TSI (c) M.Mi osz 87/90