Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

38
1 Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych

description

Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych. W poprzednim odcinku…. Rodzaje dokumentów: statyczne, aktywne, dynamiczne; Zachowanie dokumentów aktywnych opisywane językiem skryptowym: - PowerPoint PPT Presentation

Transcript of Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

Page 1: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

1

Technologie Internetuwykład 4: Technologie dokumentów

dynamicznych WWW

Piotr Habela

Polsko-Japońska Wyższa SzkołaTechnik Komputerowych

Page 2: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

2

W poprzednim odcinku…• Rodzaje dokumentów: statyczne, aktywne, dynamiczne;• Zachowanie dokumentów aktywnych opisywane językiem

skryptowym:– Zapewnia interakcyjność serwisów webowych;– Wymaga ustandaryzowanego wsparcia w środowisku przeglądarki;

• Całość oparta na bezstanowym protokole HTTP: interakcja z serwerem odbywa się jako sekwencja niezależnych par: żądanie-odpowiedź. Zapamiętanie stanu realizowane zwykle poprzez mechanizm cookies.

• Środowisko wykonawcze po stronie klienta jest bardzo ograniczone:– ustandaryzowany „wspólny mianownik”,– względy bezpieczeństwa,– ograniczona objętość przesyłanych danych.

Page 3: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

3

Plan wykładu• Motywacja dla użycia dokumentów dynamicznych;

• Właściwości dokumentów dynamicznych;

• Problem autentykacji użytkowników;

• Przegląd ważniejszych technologii:– Common Gateway Interface (CGI);– Server Side Includes (SSI);– PHP Hypertext Preprocessor (PHP);– Active Server Pages (ASP);– Servlety i Java Server Pages (JSP);– ASP .NET;

Page 4: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

4

Dokumenty dynamiczne

• Motywacja = Interakcyjność serwisów WWW:– Swobodne wykorzystanie zasobów zlokalizowanych po

stronie serwera – w tym baz danych;– Brak specjalnych wymagań wobec środowiska

przeglądarki (jest przesyłany czysty HTML).

• Wykorzystywana funkcjonalność:– aplikacje oparte na bazie danych;– autoryzacja użytkownika i personalizacja; koszyk;– forum; poczta przez WWW oraz listy rozsyłkowe;– zarządzanie treścią; generowanie dokumentów.

Page 5: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

5

Właściwości dokumentów dynamicznych• Serwer WWW musi zostać uzupełniony o

współdziałający z nim program użytkowy;• Zapewnienie przekazywania danych wejściowych i

wyjściowych pomiędzy serwerem WWW a programem użytkowym;

• Rozróżnienie adresów URL dokumentów statycznych i dynamicznych;

• Adres URL żądania wskazuje albo na dokument HTML zawierający interpretowane przez serwer skrypty, lub określa program, który generuje całość zwracanego dokumentu;

• Wynikiem przetwarzania ma być zwracany przez serwer kod strony HTML;

Page 6: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

6

Problem autoryzacji użytkownika• Można wyróżnić trzy kryteria udostępniania klientowi

chronionego zasobu:– Autoryzacja (authorization)– Autentykacja (authentication)– Kontrola dostępu (access control).

• Autentykacja: użytkownik jest rzeczywiście tym, za kogo się podaje (najpowszechniejsza metoda = sprawdzenie hasła).

• Autoryzacja: sprawdzenie, czy dany użytkownik jest uprawniony do danego dostępu.

• Kontrola dostępu: inne, ujęcie zagadnienia. Poza zidentyfikowaniem użytkownika możliwe są jeszcze inne kryteria udostępnienia zasobu (np. adres, spod którego nadchodzi żądanie).

Page 7: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

7

Autentykacja HTTP• Najprostsza metoda, tzw. basic:

– uwzględniona w protokole HTTP;– wymaga ustawień konfiguracyjnych serwera WWW;– hasło nie jest kodowane;

• Przebieg interakcji:– w odpowiedzi na żądanie serwer zwraca zamiast zasobu

nagłówek: 401 Authentication Required; oraz nazwę chronionego obszaru (tzw. realm)

– przeglądarka wyświetla dialog (użytkownik i hasło);– wprowadzone dane są wykorzystywane przez

przeglądarkę w kolejnych żądaniach dotyczących danego obszaru;

Page 8: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

8

Konfigurowanie autentykacji HTTP (serwer Apache)• Utworzenie pliku z hasłami uprawnionych użytkowników.• Utworzenie pliku .htaccess chronionego katalogu lub wpis

w głównym pliku konfiguracyjnym:– AuthType: Rodzaj autoryzacji – np. Basic– AuthName: Nazwa chronionego obszaru– AuthUserFile: Lokalizacja pliku haseł użytkowników.– AuthGroupFile: Lokalizacja pliku grupy (opcjonalnie)– Require: Identyfikatory uprawnionych

użytkowników (specjalną nazwą jest valid-user, czyli każdy poprawnie zidentyfikowany użytkownik wymieniony w pliku haseł).

• Plik grupy określa jej nazwę oraz listę jej członków (w polu „Require” można wówczas podać słowo group oraz nazwę grupy.

• Przy większej liczebności lub fluktuacji uprawnionych, należy wesprzeć obsługę haseł mechanizmem bazy danych.

Page 9: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

9

Kontrola dostępu – pozostałe możliwości• Obok autoryzacji można specyfikować jeszcze inne

ograniczenia dostępu, oparte na adresie z którego napływa żądanie:Allow from <nazwa lub adres IP> oraz

Deny from <nazwa lub adres IP>.

• Można określać kolejność nakładania ograniczeń:Order: deny, allow

• Można też ustalić warunek logiczny: Satisfy all lub any to pierwsze (domyślne) oznacza wymagalność zarówno autentykacji hasłem jak również spełnienia dodatkowych ograniczeń; to drugie – albo autentykacja albo lokalizacja (np. wewnątrz sieci danej firmy).

Page 10: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

10

CGI – Common Gateway Interface• Historycznie pierwsza upowszechniona technologia dla

dokumentów dynamicznych. Standard opracowany pierwotnie przez NCSA (National Center for Supercomputer Applications).

• Standard dla zewnętrznych programów bramki dla współdziałania z serwerami informacyjnymi takimi jak HTTP.

• Protokół uruchamiania programów na serwerze WWW. Ustandaryzowanie takiego interfejsu zapewnia niezależność od platformy tj. OS oraz serwera webowego.

• Pozwala na udostępnianie dynamicznej informacji. Nie ogranicza się do dokumentów HTML.

Page 11: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

11

Architektura CGI• Program implementujący dokument dynamiczny – zwany

programem CGI. Typowy scenariusz działania:– odczytanie parametrów żądania (ze standardowego wejścia albo ze

zmiennych środowiskowych);

– przetworzenie danych;

– wyprowadzenie komunikatu http (na standardowe wyjście).

• CGI nie jest językiem programowania i nie determinuje języka programowania. Można stosować nawet skrypty powłoki. Często stosowany Perl w związku z dostępnością modułów dla Webu oraz bardzo dobrymi udogodnieniami dla przetwarzania tekstu.

• Lokalizacja i nazewnictwo programów CGI – zależne od konfiguracji serwera.

Page 12: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

12

Komunikacja z programem CGI• Wyjście programu CGI może zawierać nagłówek

interpretowany przez serwer. Określać może np. format wytworzonego dokumentu, czy też przekierowanie zlecenia w nowe miejsce, tj. przesłanie w odpowiedzi domyślnego pliku – np. Location: response.html

• Przekazywanie parametrów – metoda GET:– Z założenia metoda służy pobieraniu jakiegoś zasobu;– Dołączone do URL parametry precyzują takie żądanie (wymagane

odpowiednie kodowanie; ograniczona długość);– kilka identycznych żądań GET ma taki sam efekt uboczny jak

jedno i zwracane z takiego zapytania wyniki mogą być przechowywane w cache; => nie nadaje się do używania w operacjach wymagających reakcji na każde żądanie;

– Dostępne dla programu w zmiennej środowiskowej QUERY_STRING.

Page 13: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

13

Komunikacja z programem CGI

• Przekazywanie parametrów – metoda POST:– nadaje się do przekazywania większych objętości

danych;– dane są pobierane ze standardowego wejścia. Liczba

bajtów do pobrania jest określana w zmiennej środowiskowej CONTENT_LENGTH.

• Odpowiedzi kierowane do klienta polegają na generowaniu wyjścia HTML:– Content-type: text/html– następnie – pusta linia;– Wygenerowana zawartość dokumentu.

Page 14: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

14

Zmienne środowiskowe dostępne dla programu CGI• REMOTE_ADDR, REMOTE_HOST, REMOTE_USER,

REMOTE_IDENT, FROM• QUERY_STRING• SERVER_SOFTWARE, SERVER_NAME, SERVER_PORT• SERVER_PROTOCOL, GATEWAY_INTERFACE• REQUEST_METHOD (np. POST lub GET) • PATH_INFO (virtual) PATH_TRANSLATED, SCRIPT_NAME• AUTH_TYPE (zastosowana metoda autentykacji). • CONTENT_TYPE, CONTENT_LENGTH (dot. nadesłanego

załącznika) • ACCEPT_LANGUGE, HTTP_ACCEPT, HTTP_USER_AGENT • REFERER (dokument, z którego nastąpiło odwołanie) • FORWARDED (nazwa serwera proxy)• HTTP_COOKIE

Page 15: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

15

Wady technologii CGI

• Ograniczona sprawność działania: konieczność załadowania procesu przy obsłudze każdego żądania stanowi znaczne obciążenie;

• Problem współdzielenia zasobów nie jest łatwy do rozwiązania;

• Możliwość wywoływania poleceń po stronie serwera tworzy istotne zagrożenie dla bezpieczeństwa;

Page 16: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

16

Internet Server Application Programming Interface (ISAPI)• Technologia wprowadzona przez firmę Microsoft (przed

ASP). Definiuje tzw. rozszerzenia (extensions) i filtry (filters). Zapewnia równie dużą elastyczność jak CGI.

• Podobną technologią jest NSAPI (Netscape Server Application Programming Interface), będący produktem Netscape, działający w ramach serwerów Enterprise tej firmy.

• W przeciwieństwie do CGI proces obsługi rezyduje w pamięci, a nie jest każdorazowo ładowany.

• Podobnie jak programy wołane poprzez CGI, w ISAPI daje możliwość wywoływania funkcji systemowych (API) i innych dostarczonych przez wybrany język programowania.

• Istotnym problemem jest nieprzenośność kodu (zależny od API konkretnego dostawcy) – określanej jako proprietary API

Page 17: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

17

Server Side Includes (SSI)• Jak sugeruje nazwa, w tym wypadku kod jest wstawiany w

strukturę dokumentu HTML.• Odpowiednie fragmenty dokumentu są ponownie

generowane przy każdym odwołaniu.• Dynamika dokumentu bez konieczności stosowania CGI;

generowane są tylko wymagane fragmenty dokumentu.• Możliwe zastosowania:

– Licznik odwołań;– Data i czas; data ostatniej modyfikacji dokumentu;– Wkomponowywanie innego pliku lub rezultatu wywołania

programu CGI.

• Rozszerzenia specyfikacji obejmują m. in.:– Instrukcje warunkowe (if … else);– Wysyłanie poczty.

Page 18: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

18

SSI - składnia• Pliki wymagające takiego przetwarzania wyróżniane zwykle

specjalnym rozszerzeniem: .sht .shtm lub .shtml.• Elementy interpretowane umieszczone są w specjalnych

znacznikach wewnątrz kodu HTML. Przed wysłaniem zawartość jest przeglądana i osadzone znaczniki są interpretowane. Format znacznika (token) SSI jest następujący:<!--#polecenie zbiór_zmiennych --> czyli : – <!--# Identyfikator otwierający znacznik SSI; – polecenie może przybierać wartości: echo, include, fsize,

flastmod, exec, config, oraz (rozszerzenia): if, goto, label, break – zbiór zmiennych jedna lub więcej para nazwa_zm =

“wartosc”. Umieszczane tu dane są zależne od kontekstu polecenia.

– --> obowiązkowy identyfiaktor zamykający.

Page 19: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

19

SSI – dostępne polecenia• config - Określa sposoby parsowania plików:

– errmsg – postać komunikatu o błędzie. – timefmt – format wyświetlania czasu. – sizefmt – Sposób wyświetlania rozmiaru plików (bytes lub

abbrev). • include – wstawienie do bieżącego dokumentu innej wersji:

– virtual – ścieżka wirtualna na serwerze. – file – ścieżka względna w głąb bieżącego katalogu.

• echo – wyświetlenie wartości podanej zmiennej. • fsize – wyświelta rozmiar pliku. • flastmod – data ostatniej modyfikacji. • exec – wykonanie zadanej komendy systemowej lub skryptu

CGI: – cmd – uruchomienie podanego stringu jako komendy. – cgi – uruchomienie zadanego skryptu CGI.

Page 20: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

20

SSI – dostępne zmienne• Zmienne zdefiniowane przez specyfikację CGI.• Ponadto:

– DOCUMENT_NAME: Nazwa bieżącego pliku. – DOCUMENT_URI: Ścieżka wirtualna do dokumentu (np.

/docs/howto/abc.shtml). – QUERY_STRING_UNESCAPED: Parametry żądania. – DATE_LOCAL: Data i strefa czasowa, formatowane

poleceniem konfiguracyjnym (timefmt).– DATE_GMT: Data w postaci Greenwich Mean Time. – LAST_MODIFIED: Data ostatniej modyfikacji. Formatowana

poleceniem konfiguracyjnym (timefmt).

Page 21: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

21

SSI - rozszerzenia

• Serwer Apache udostępnia poza standardowymi poleceniami (określanymi jako NCSA-compatible) następujące rozszerzenia:– Użycie zmiennych w komendach SSI. Np. data modyfikacji

bieżącego dokumentu: <!--#flastmod file="$DOCUMENT_NAME" -->

– Definiowanie i aktualizacja własnych zmiennych – instrukcja set.

– Instrukcje warunkowe: if, else, elif and endif.<!--#if expr="warunek_logiczny" --> Zawartość jeśli prawda <!--#else --> Zawartość jeśli fałsz <!--#endif --> (Np. użycie zmiennej $HTTP_USER_AGENT może pomóc dostosować zwracaną treść do możliwości przeglądarki.)

=> Węższe możliwości w porównaniu z CGI, jednak stanowi dość użyteczne „lżejsze” rozwiązanie.

Page 22: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

22

Active Server Pages (ASP)• Klasyfikowane jako technologia gatunku SSI:

Plik ASP może zawierać HTML, XML, tekst oraz skrypty; • Działa w ramach IIS i PWS (Personal Web Server).

Technologia firmy Microsoft. Istnieją jednak także implementacje stworzone dla innych platform.

• Zalety:– Dynamiczna zawartość webowa; – Obsługa danych przekazanych poprzez formularze;– Udostępnianie źródeł danych znajdujących się na serwerze; – W stosunku do CGI przewagą jest prostota i szybkość tworzenia; – Kod ASP nie jest widoczny po stronie przeglądarki; – Udostępnia zwykły HTML -> brak specjalnych wymogów wobec

przeglądarki; – Przy odpowiednim programowaniu stron pozwala ograniczyć ruch

w sieci.

Page 23: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

23

ASP - składnia• Elementy skryptu serwera oznaczane tagiem: <% … %>• Domyślnym językiem skryptów jest VBScript. Jeśli zdecydujemy się

na JavaScript (ściśle rzecz biorąc będzie to JScript – implementacja JavaScript w wydaniu Microsoft), należy zmienić domyślny język na początku dokumentu (przed tagiem HTML): <%@ language="javascript"%>

• Podobnie jak w rozszerzonym SSI, elementy instrukcji warunkowej mogą się przeplatać z kodem HTML.

• Przykład (zmienna Response – dostęp do przetwarzanego dokuementu):<html><body>

<% response.write("Hello World!") %></body></html>

• Dyrektywa #include:– Umieszczana w tagach komentarza, powoduje sprowadzenie zawartości innego

pliku przed ewaluacją bieżącego dokumentu: <!--#include file="inny.inc"-->– Do wskazania lokalizacji możemy użyć atrybutów file lub virtual (znaczenie

analogiczne jak w SSI).

Page 24: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

24

ASP – rodzaje zmiennych• Lokalne (wewnątrz procedur).• Globalne strony (poza ciałem procedury):

dostępne dla każdego skryptu na danej stronie.• Sesji: Dostępne ze wszystkich stron danej aplikacji –

tworzone i wypełniane na potrzeby współpracy z konkretnym użytkownikiem. Przechowują np. imię, identyfikator, preferencje.

• Aplikacyjne: Również dostępne dla wszystkich stron. Przechowują jednak właściwości obowiązujące wszystkich użytkowników.

Page 25: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

25

ASP – predefiniowane obiekty• Request: m. in. udostępnia parametry żądania oraz odczyt

ciasteczek;• Response:

– pisanie do wygenerowanego dokumentu – zwyczajne lub binarne (tj. bez konwersji znaków),

– buforowanie treści;– przekierowanie do innej strony (Redirect);– określanie terminu ważności strony – właściwość Expires

(bezwzględnie lub relatywnie);– sprawdzanie, czy klient jest podłączony: IsClientConnected;– określanie typu zwracanej zawartości oraz strony kodowej

Page 26: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

26

ASP – predefiniowane obiekty• Application: Dostęp do globalnych właściwości i obiektów

statycznych, uwzględniający nakładanie zamków.• Session: Określenie ustawień regionalnych, terminu

ważności sesji oraz sprawdzenie identyfikatora sesji.• Server: Opcje konfiguracyjne, odczyt ostatniego błędu,

tworzenie obiektów.• Error: Szczegółowy opis błędu.• Inne istotne typy:

– ASP FileSystem – operacje na lokalnych plikach.– ASP TextStream – poruszanie się w pliku tekstowym.– ASP Drive – dostęp do informacji na temat napędów dyskowych.– ASP File – informacje o pliku; kopiowanie, usunięcie,

przenoszenie.– ASP Folder – podobnie – dla folderu.– ASP Dictionary – obiekt słownikowy.

Page 27: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

27

ASP – konfiguracja aplikacji• Plik Global.asa przechowywany w głównym katalogu

danej aplikacji. Określa:– Obsługę zdarzeń aplikacji i sesji (Session_OnStart

Application_OnStart Session_OnEnd Application_OnEnd).– Osadzanie obiektów dostępnych w całej aplikacji wspólnie lub

dla poszczególnych sesji:<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}>....</object>progID -> dostawca, komponent, wersja;classID -> identyfikator COM;Atrybut id pozwoli na odwoływania się do takiego obiektu w kodzie innych stron.

– Deklaracja bibliotek typów (TypeLibrary) używanych przez komponenty aplikacji).

Page 28: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

28

Obsługa cookies na stronach ASP• Typowe dla tej i podobnych technologii są udogodnienia

ułatwiające dostęp do cookies.• Ustawiane / pobierane metodami

Response.Cookies(„nazwaCiasteczka”) i Request.Cookies(„nazwaCiasteczka”).Zawartość dostępna bezpośrednio w rezultacie, zaś termin ważności – w atrybucie Expires.

• Istnieje również wsparcie dla przechowywania wartości złożonych:– właściwość HasKeys określa, czy ciasteczko przechowuje złożoną

strukturę;– dostęp do poszczególnych pozycji możliwy poprzez dodatkowe

indeksowanie: Request.Cookies(”nazwaCiasteczka”)(”nazwaKlucza”);

• Brak obsługi cookies wymaga przekazywania niezbędnych parametrów w kolejnych wywołaniach określonych stron (w ramach URL albo w ukrytych polach formularza).

Page 29: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

29

PHP Hypertext Preprocessor

• Jest zagnieżdżonym w HTML jezykiem skryptowym działającym po stronie serwera tworzonym na zasadach open-source.Autor: Rasmus Lerdorf (1994).

• Również zaliczany do gatunku SSI.• Bardzo szeroko dostępny; Obsługa PHP na danej platformie

dostępna jako moduł serwera albo jako program CGI.• Zastosowania:

– skrypty po stronie serwera;– skrypty uruchamiane z linii komend;– okienkowe programy działające po stronie użytkownika;

Page 30: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

30

Język PHP – krótka charakterystyka

• Jak w większości języków skryptowych – tzw. luźne typowanie:– Dostępne typy: Integer, Double, String, Array, Object

– Typ danej zmiennej można zmieniać w czasie działania skryptu. Możliwe są również rzutowania (składnia jak w Javie).

• Składnia instrukcji warunkowych, operatorów arytmetycznych oraz pętli a także komentarzy jest wzorowana na C++ i Javie.

• Istnieje możliwość deklarowania zmiennych i stałych. Identyfikatory są czułe na wielkość znaków.

Page 31: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

31

Język PHP – krótka charakterystyka – c.d.• Inne specyficzne operatory:

– Operator zignorowania błędu -> „@” przed wyrażeniem mogącym wygenerować błąd.

– Operator wykonania – symbol podobny do cudzysłowu, zlokalizowany zwykle na tym samym klawiszu co tylda „~”. Np. `ls -l`.

– Podwójny symbol zmiennej „$$zmiennaA”: odwołanie do zmiennej o nazwie przechowywanej w tekstowej zmiennejA.

• Zmienne specjalne – tzw. superglobals. Przechowują parametry środowiska, np. następujące tablice:– Parametry przekazane w wywołaniu: $_POST oraz $_GET. Np.

$_POST[‘imie’];– Zmienne środowiskowe: $_ENV; np. $_ENV[‘REMOTE_HOST’]– Zmienne serwera: $_SERVER; np. $_SERVER['PHP_SELF']

Page 32: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

32

Servlety• Technologia Javy (Java 2 Enterprise Edition).• Servlet funkcjonuje jako element oprogramowania

odpowiadający na żądania (zwykle) HTTP.Model działania nawiązuje więc po części do CGI, ma jednak w stosunku do niego istotne zalety:– Przystosowane do wykonania wielowątkowego.– Dzięki rozbudowanemu API Javy zwykle nie ma potrzeby

wywoływania poleceń systemu operacyjnego – lepsze bezpieczeństwo.

– Możliwość określenia precyzyjnej kontroli dostępu do zasobów (ACL – Java Access Control List).

– Mechanizm obsługi wyjątków – potencjalnie lepsza stabilność.

Page 33: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

33

Servlet – cykl życiowy• Klasa Javy, wykonywaną w środowisku maszyny

wirtualnej przez usługę zwaną silnikiem servletów (servlet engine). Klasa ta implementuje interfejs javax.servlet.Servlet.

• Servlet jest ładowany przy pierwszym odwołaniu doń lub przy starcie engine-u. Pozostaje w pamięci do momentu jawnego usunięcia lub zatrzymania serwera.

• Można wskazać trzy metody sevletu wyznaczające jego cykl życiowy:– void init(ServletConfig config) - Uruchamiana przy

załadowaniu servletu. – void service(ServletRequest request, ServletResponse

response) - Metoda uruchamiana przy każdym żądaniu skierowanym do servletu. Implementacja musi uwzględniać wielowątkowe wykonanie.

– void destroy() - Uruchamiana przy wyłączaniu servletu.

Page 34: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

34

Servlet – implementacja zachowania• Klasa abstrakcyjna javax.servlet.http.HttpServlet

implementuje następujące metody (jako chronione – protected, wywoływane przez metodę service(…)). Obsługują one poszczególne rodzaje żądań w protokole HTTP:void doDelete(HttpServletRequest req, HttpServletResponse resp)

void doGet(HttpServletRequest req, HttpServletResponse resp)

void doHead(HttpServletRequest req, HttpServletResponse resp)

void doOptions(HttpServletRequest req, HttpServletResponse resp)

void doPost(HttpServletRequest req, HttpServletResponse resp)

void doPut(HttpServletRequest req, HttpServletResponse resp)

void doTrace(HttpServletRequest req, HttpServletResponse resp)

Page 35: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

35

Java Server Pages (JSP)• Również element platformy J2EE; kolejne rozwiązanie

służące implementacji dynamicznych dokumentów webowych.

• Umożliwiają osadzanie kodu wewnątrz struktury HTML. Wewnątrz struktury dokumentu HTML kod Javy jest umieszczany wewnątrz znaczników: <% … %>.

• Kod strony, opatrzony rozszerzeniem .jsp jest następnie przetwarzany przez silnik JSP do postaci servletu i kompilowany. Wytworzony kod opiera się na pakiecie javax.servlet.jsp i stanowi rozszerzenie klasy javax.servlet.http.HttpServlet, implementujące interfejs javax.servlet.jsp.HttpJspPage. Klasa wygenerowana ze strony Nazwa.jsp otrzymuje nazwę Nazwa$jsp.

Page 36: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

36

JSP – implementacja strony

• Implementowane są następujące metody: – jspInit() – jspDestroy() – _jspService(HttpServletRequest

request,HttpServletResponse response)  

• Można odpowiednio zdefiniować zachowanie metod jspInit() i jspDestroy(), zaś _jspService(HttpServletRequest request,HttpServletResponse response)jest generowana przez silnik JSP, na podstawie postaci pierwotnej strony .jsp.

Page 37: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

37

JSP – składnia: 4 rodzaje tagów• Dyrektywy: Import pakietów, ustawienia sesji i sposobu

informowania o błędach.Podawane w tagach: <%@nazwaDyrektywy nazwaAtrybutu="wartość" %>np. : %@page language="java" import="java.sql.*, naszPakiet.Klasa1" %

• Deklaracje: Defincje funkcji i używanych zmiennych.Podawane w tagach: <%! … %>

• Skryplety (scriplets):Poprawny kod Java, do umieszczenia w metodzie _jspService(…). Umieszczane w „zwykłych” znacznikach <% … %>. Zmiennymi predefiniowanymi, do których mogą odwoływać się skryplety są:request, response, session, out, oraz pageContext, application,config i exception.

• Wyrażenia:Dowolne dane tekstowe, przeznaczone do umieszczenia na docelowej stronie. Przekazywane wewnątrz znaczników <%= … %>. Np. <%= new java.util.Date() %>

Page 38: Technologie Internetu wykład 4: Technologie dokumentów dynamicznych WWW Piotr Habela

38

ASP .NET

• Strony są kompilowane przez kompilator zgodny z CLR; dostępne kompilatory dla VB, VC++, Java, C# i inne.

• Zastosowanie cache;• Wyższy poziom abstrakcji:

Styl tworzenia bardzo przypominający budowę tradycyjnych aplikacji w Windows. Ukryte przed programistą zostają szczegóły związane z interakcją wywołań i odpowiadająca im dystrybucja kodu pomiędzy wykonywany po stronie klienta oraz po stronie serwera.

• Separacja kodu pomiędzy interfejs użytkownika: strony .aspx oraz kod serwerowy (tzw. code-behind pages): .aspx.cs, .aspx.vb lub inne.

• Rozbudowane udogodnienia bazodanowe.