tai w1 nstac www


TECHNOLOGIE APLIKACJI INTERNETOWYCH
Wprowadzenie do przedmiotu
Aplikacje internetowa
Aplikacja internetowa (web application) program komputerowy, który
pracuje na serwerze i komunikuje się poprzez sieć komputerową z
komputerem użytkownika z wykorzystaniem przeglądarki internetowej.
[Wiki]
Rozpowszechnione grupy aplikacji powiązane są z:
Technologią WWW
Transferem plików
Pocztą elektroniczną
Usługami katalogowymi
Wymianą plików w sieciach P2P
TAI LJ
1
Aplikacje WWW
Aplikacje WWW (World Wide Web) - aplikacje internetowe wykorzystujące
protokół HTTP (HyperText Transfer Protocol) oraz serwer WWW.
Aplikacje WWW - zestawy programów komputerowych znajdujących się po
stronie serwera WWW, które komunikują się z użytkownikiem końcowym za
pomocą dokumentów dynamicznych obsługiwanych przez programy klientów
WWW.
Aplikacje WWW wymagają zwykle obecności specjalnego środowiska
uruchomieniowego - serwera aplikacji. Serwer aplikacji stanowi część serwera
WWW lub jest z nim powiązany.
W aplikacjach WWW możliwe jest oddzielanie danych od warstwy
prezentacji.
TAI LJ
Aplikacje WWW
HTML (HyperText Markup Language) - język publikowania dokumentów
hypertekstowych przesyłanych zapomocą protokołu HTTP. Technologia związana
z aplikacjami WWW.
XML (Extensible Markup Language) - elastyczny język znaczników, podstawowa
technologia stosowana w aplikacjach internetowych Web serwisach.
Typowe zastosowania aplikacji WWW:
- systemy bankowości internetowej
- sklepy internetowe
- serwisy aukcyjne
- portale internetowe
- systemy informujące np. o połączeniach lotniczych i kolejowych.
TAI LJ
2
Historia rozwoju Internetu i sieci WWW
1945 - Vannevar Bush, koncepcja hipertekstu, na której oparto system
WWW.
1969 - Uruchomienie pierwszych węzłów eksperymentalnej sieci
komputerowej ARPA-NET.
1971 - eMail, pierwszy program poczty elektronicznej.
1972 - Telnet, ważna usługa sieciowa.
1974 - Koncepcja protokołu TCP. Wprowadzenie terminu "Internet".
1982 - ARPA-NET wprowadza rodzinę protokołów TCP/IP.
1984 - Wprowadzenie usługi DNS.
1991  Pierwsze dołączenie Polski do Internetu.
TAI LJ
Historia rozwoju sieci WWW
1991 - Koncepcja WWW. Tim Berners-Lee (CERN) specyfikuje
koncepcję systemu WWW i języka znaczników.
1993  Mosaic, przeglądarka WWW.
1995 - Przeglądarka Netscape, język Java.
1996  Specyfikacja języka XML.
2000 - Zapoczątkowanie standaryzacji Web Services.
TAI LJ
3
Historia rozwoju sieci WWW
Koordynacją rozwoju technologii WWW zajmuje się organizacja: WWW
Consortium (W3C) opracowując standardy w postaci dokumentów RFC
(Request for Comments).
Rodzaje RFC: Proposed Standard, Draft Standard oraz Internet Standard.
Dwa ostatnie zawierają obowiązujące regulacje dotyczące Internetu.
Standardy związane z Web serwisami
- SOAP (Simple Object Access Protocol) - standard przesyłania
wiadomości o jednolitym formacie, między różnymi Web serwisami,
- WSDL (Web Services Description Language) - oparty na XML język do
definiowania usług sieciowych, opracowany przez Microsoft i IBM.
TAI LJ
Sieć WWW
WWW - największy na świecie elektroniczny zbiór informacji.
WWW - zbiór milionów połączonych ze sobą dokumentów, znajdujących
się na komputerach rozproszonych po całym świecie.
WWW - ogólnoświatowy system komunikacyjny, umożliwiający wymianę
danych multimedialnych pomiędzy komputerami podłączonymi do
Internetu.
Sieć WWW zrywa z zasadą lokalności odwołań.
TAI LJ
4
Sieć WWW
Korzystanie z sieci WWW wymaga zasobów:
Na lokalnym komputerze:
- połączenia z Internetem,
- przeglądarkę internetową,
W sieci Internetowej:
- serwer (serwery) WWW,
Połączenia pomiędzy dwoma  rozmawiającymi ze sobą usługami
(programami komputerowymi).
TAI LJ
Architektura sieci komputerowej
Architektura sieci - metody komunikacji między systemami sieciowymi.
Topologia sieci - sposób przygotowania infrastruktury fizycznej w celu
ustanowienia połączeń sieciowych.
Typowe architektury sieciowe:
- Sieci klient-serwer (dwuwarstwowe),
- Sieci wielowarstwowe,
- Sieci P2P (peer-to-peer),
- Sieci kratowe lub rozproszone,
- Hybrydowe połączenia wymienionych rozwiązań.
TAI LJ
5
Protokoły Internetowe
Zestawem protokołów internetowych (Internet Protocol Suite) - standardowe zasady
generowania danych i zarządzania nimi.
7. Aplikacji HTTP, FTP, SMTP,
6. Prezentacji Aplikacji DNS, POP3, SSL
Protokoły
5. Sesji
internetowe
Architektury
4. Transportowa Transportowa TCP, UDP
3. Sieciowa Internetowa IP, ICMP, IGMP
Dostepu do sieci Ethernet
Topologie 2. Aącza danych
1. Fizyczna
Warstwy modelu Przykłady
Warstwy modelu
TCP/IP
OSI
TAI LJ
Architektura dwuwarstwowa
Architektura dwuwarstwowa jest implementowana przez sieć Klient-
serwer.
Wersje oprogramowania klienckiego i serwerowego wykonują zadania
na podstawie innego kodu lub mają wspólny kod, ale realizujący
odmienne funkcje. W większości przypadków aplikacje klienckie i
serwerowe działają w różnych systemach.
Wzajemne rozmieszczenie jednostek klienckich i serwerów nie jest w
żaden sposób ograniczane, jeśli tylko będą się one mogły komunikować.
Protokoły realizacji usługi: HTTP, SNMP, RMI, .NET Remoting, TCP
UDP, CORBA itp.
TAI LJ
6
Architektura wielowarstwowa
Odmiana architektury klient-serwer, w której w transakcji między klientem
a serwerem uczestniczą usługi pośrednie.
Jednostka kliencka wymienia dane z serwerem pośredniczącym, a
serwer pośredniczący komunikuje się z serwerem zasadniczym.
Serwer końcowy przekazuje informacje do klienta również z
wykorzystaniem serwera pośredniczącego (serwery transakcyjne,
platforma J2EE, Java 2 Enterprise Edition).
TAI LJ
Architektura trójwarstwowa
Rozwiązanie trójwarstwowe jest powszechnie stosowaną implementacją
architektury n-warstwowej.
Podstawowe funkcje sieciowe w aplikacji trójwarstwowej są rozdzielone
zgodnie z założeniami:
- Warstwa kliencka (warstwa prezentacji) zapewnia użytkownikowi
możliwość operowania aplikacją i zarządzania systemem.
- Warstwa pośrednicząca (warstwa logiki) obsługuje interakcje
użytkownika w formie niezależnych transakcji.
- Warstwa serwerowa (warstwa danych) składa się z serwerów
aplikacji oraz usług, które zapewniają dostęp do zgromadzonych
informacji.
TAI LJ
7
Architektura wielowarstwowa
Warstwa serwerowa
(warstwa danych)
Serwer
Serwer Serwer
Serwer Serwer
WWW
plików aplikacji
poczty Baz danych
Warstwa
Serwer
pośrednicząca
Transakcyjny
(warstwa logiki)
Warstwa kliencka
(warstwa prezentacji)
Architektura dwuwarstwowa i trójwarstwowa
TAI LJ
Architektura wielowarstwowa
Oddzielenie jednostki klienckiej od serwera sprawia, że serwer
pośredniczący może odgrywać rolę usługi translacji protokołów.
Transakcje ustanowione z serwerem pośredniczącym mogą przetrwać
utratę połączenia klienckiego lub serwerowego bądz wyłączenie
któregokolwiek z systemów.
Transakcje mogą być realizowane poprzez wymianę komunikatów
zgodnie z modelem ACID (atomicity, consistency, isolation, durabilily).
W przypadku awarii transakcje są wycofywane.
Trójwarstwowe systemy są łatwiejsze w skalowaniu, zapewniają większą
modularność i dają możliwość aktualizowania systemu bez przerw w
pracy.
TAI LJ
8
Architektura P2P
Architektura P2P (Peer-to-Peer) - sieć równorzędna. Aplikacje w tym modelu
wykorzystują bezpośrednie połączenia między parami tymczasowo połączonych
hostów nazywanych węzłami.
Każdy komputer (peer) może być zarówno serwerem jak i klientem dla innych
węzłów.
Węzły sieci P2P mogą być heterogeniczne.
Zastosowania:
- sieci dystrybucji plików (BitTorrent),
- wymiany plików (eMule),
- telefonii internetowej (Skype),
- telewizji internetowej (PPLive).
TAI LJ
Topologie P2P
Sieć z centralnym serwerem (Napster) - usługa wymiany plików muzycznych.
Serwer
Klient Klient
Klient
Klient
Struktura sieci Wymiana Zapytania
danych
Zalety: łatwość i szybkość wyszukiwania, dobra wydajność.
Wady: serwer łatwo do zlokalizowania.
TAI LJ
9
Topologie P2P
Sieć rozproszona (Gnutella). System umożliwia jednostkom sieciowym
przeglądanie zbioru plików innych komputerów bez konieczności odwołania się
do centralnej bazy danych.
Węzeł
Węzeł
Węzeł
Węzeł
Zapytania
Struktura sieci Wymiana
danych
Zalety: trudny do zlokalizowania serwer.
Wady: mało efektywne wyszukiwanie (zapytania do wszystkich węzłów).
TAI LJ
Topologie P2P
Sieć rozproszona z wyróżnionymi komputerami (FastTrack).
Węzeł
Superkomputer
Superkomputer
Węzeł
Węzeł
Węzeł
Węzeł
Węzeł
Zapytania
Struktura sieci Wymiana danych
Zalety: dominacja na supernode, szybsze wyszukiwanie, samoorganizacja.
Wady:  fałszywki - hash.
TAI LJ
10
Proces klienta i serwera
Proces - program uaktywniony w obrębie systemu końcowego.
Komunikację międzyprocesową dla procesów uruchomionych na tym samym
systemie końcowym ustalana system operacyjny.
Komunikacja procesów dwóch różnych systemów końcowych polega na
wymianie komunikatów za pośrednictwem sieci komputerowej.
Proces inicjujący połączenie (łączący się na początku sesji z drugim procesem)
jest określany mianem klienta (strona klienta aplikacji).
Proces oczekujący na połączenie w celu rozpoczęcia sesji jest nazywany
serwerem (strona serwera aplikacji).
TAI LJ
Interfejs proces - sieć komputerowa
Gniazdo - interfejs API (Application Programming Interface) pośredniczący między
procesem aplikacji i siecią.
TAI LJ
11
Uproszczony klient-serwer
Rodzaj architektury sieciowej, kiedy połączenia Klient-serwer i Serwer-klient
wykorzystują uproszczone jednostki klienckie nazywamy uproszczonym klientem
lub cienkim klientem (thin client).
Uproszczony klient jest terminalem o obniżonym poborze mocy z podsystemami
sieciowym i graficznym. Jednostki tego typu mogą być komputerami lub
urządzeniami przenośnymi, w których został zainstalowany uproszczony system
operacyjny np. zubożony Linux, wbudowany system operacyjny czasu
rzeczywistego (RTOS Real-Time Operating System), Windows CE.
Większość operacji związanych z przetwarzaniem danych jest wykonywana po
stronie  serwera .
TAI LJ
Składniki architektury WWW
Architektura WWW (model Klient-Serwer).
1. Klient WWW (klient HTTP, przeglądarka WWW).
2. Serwer WWW (Serwer HTTP).
3. Protokół HTTP.
Żądanie HTTP
Odpowiedz HTTP
Klient WWW
Serwer WWW
Architektura WWW jest przykładem architektury rozproszonej składającej się z
dwóch funkcjonalnie rozdzielonych warstw: warstwy klienta WWW i warstwy
serwera WWW.
TAI LJ
12
Składniki architektury WWW
Serwer WWW jest programem nieprzerwanie pracującym, obsługującym
repozytorium dokumentów (np. (X)HTML), które udostępnia sieciowym klientom
WWW.
Klient WWW jest programem użytkowym, który odpowiada za wysyłanie żądań
pobrania dokumentów, ich wizualizację oraz obsługę interakcji z użytkownikiem
końcowym.
Cechy Serwera Cechy Klienta
Pasywny Aktywny
Czeka na żądania od klientów Wysyła żądania do serwera
W momencie otrzymania Oczekuje na odpowiedz od
z
z
z
żądania, przetwarza je, a serwera
następnie wysyła odpowiedz
TAI LJ
Interakcja w środowisku WWW
1. Użytkownik końcowy przekazuje klientowi WWW adres URL żądanego
dokumentu. Klient WWW wyodrębnia z adresu URL adres DNS (lub IP)
komputera, na którym pracuje oprogramowanie serwera WWW.
2. Klient WWW otwiera połączenie TCP do serwera WWW i wysyła komunikat
żądania HTTP, zawierający nazwę i ścieżkę prowadzącą do żądanego
dokumentu.
3. Serwer WWW pobiera żądany dokument z systemu plików i wysyła komunikat
odpowiedzi HTTP, do którego dołącza ten dokument, najczęściej zapisany w
formacie HTML.
4. Klient WWW wizualizuje dokument w formie graficznej i zamyka połączenie
sieciowe z serwerem WWW.
TAI LJ
13
Klient WWW
Zasadniczym zadaniem przeglądarki działającej w komputerze klienta jest
wyświetlanie stron WWW i obsługiwanie odwolania do hiperłączy.
Serwer WWW Serwer WWW
ab.com xy.com
Klient WWW
hiperłącze
hiperłącze
Protokół
TCP
Internet
Z hiperłączem związana jest informacja o lokalizacji strony. Informacja taka nosi
nazwę jednolitego lokalizatora zasobów, URL (Uniform Resource Locator) np.:
http://www.ab.com/home/products.html
Elementy URL: używany protokół (http), nazwa DNS komputera (www.ab.com),
ścieżka katalogu (/home), nazwa pliku (products.html).
TAI LJ
URL
Hiperłącze URL:
http://www.itu.org/home/index.html
pozwala uruchomić sekwencję następujących czynności:
1. Przeglądarka wyodrębnia URL znajdujący się w hiperłączu.
2. Przeglądarka zwraca się do serwera DNS o udostępnienie adresu IP serwera
określonego w adresie URL (www.itu.org).
3. Serwer DNS zwraca w odpowiedzi adres 156.106.192.32.
4. Przeglądarka ustanawia połączenie TCP z hostem o adresie 156.106.192.32
na porcie 80.
5. Przeglądarka wysyła (w ramach ustanowionego połączenia) żądanie
udostępnienia pliku /home/index.html.
6. Zdalny host (czyli serwer www.itu.org) przesyła żądany plik
7. Połączenie TCP zostaje zwolnione.
8. Przeglądarka dokonuje wyświetlenia tekstu zawartego w otrzymanym pliku.
TAI LJ
14
URL
Dla adresów URL obowiązują reguły składniowe, które nie pozwalają na
bezpośrednie użycie pewnych znaków. Znaki taki wymagają zakodowania (URL-
encoding) za pomocą symbolu "%" liczby zapisanej w systemie
heksadecymalnym (np. symbol spacji może zostać zastąpiony przez "%20" ).
Protokół Adres DNS/IP Ście\ka Dokument
Pełna składnia adresów URL została opisana w RFC 1738.
Adresowanie URL może być stosowane nie tylko w odniesieniu do dokumentów
udostępnianych przez serwery HTTP, ale też dla zasobów serwerów np. FTP,
Gopher, Usenet News.
Serwer oprócz udostępniania żądanej strony WWW udostępnia również
dodatkową informację o charakterze jej zawartości w postaci Type MIME
(Multipurpose Internet Mail Extensions).
TAI LJ
Zadania klienta WWW
Zadania klienta:
- Inicjowanie połączenia HTTP
- Pobieranie interfejsu użytkownika
- Prezentacja interfejsu użytkownika
- Interakcja z użytkownikiem
- Buforowanie odpowiedzi
- Kryptografia.
Klient WWW obsługuje interakcję użytkownika końcowego z graficznym
interfejsem użytkownika zawartym w pobranym dokumencie.
Klient WWW buforuje pobierane dokumenty, zapisując je w lokalnym
systemie plików w celu obsługi powtarzających się żądań.
TAI LJ
15
Rozszerzenia przeglądarki - wtyczki
Wtyczka (plug-in) - moduł, który przeglądarka pobiera z określonego katalogu na
dysku i instaluje jako swoje rozszerzenie w celu wykonania zestawu procedur
(np.wyświetlenia wskazanej porcji danych).
Komputer klienta
Przeglądarka
Interfejs przeglądarki
Przeglądarka:
(używany przez wtyczkę)
pojedynczy proces
Kod bazowy
Interfejs wtyczki
(używany przez
Wtyczka
przeglądarkę)
TAI LJ
Rozszerzenia przeglądarki - aplikacja pomocnicza
Aplikacja pomocnicza (helper application) - niezależny program wykonywany jako
odrębny proces (brak możliwości interakcji z przeglądarką).
Przeglądarka w celu wyświetlenia określonej zawartości, zapisuje ją najpierw w
postaci pliku tymczasowego, a następnie uruchamia aplikację pomocniczą.
Komputer klienta
Przeglądarka Aplikacja
pomocnicza
Proces 1
Proces 1 Proces2
TAI LJ
16
Serwer WWW
Program (proces, aplikacja, usługa) lub komputer (na którym jest uruchomiony
ten program) świadczący usługi na rzecz innych programów (znajdujących się
zazwyczaj na innych komputerach połączonych w sieć).
Serwer udostępniania określone zasoby, usługi innym programom, (komputerom)
lub pośredniczy w przekazywaniu danych między tymi programami,
(komputerami).
Przykłady serwerów: serwer WWW, serwer aplikacji, serwer baz danych.
TAI LJ
Serwer WWW
Zadania serwera WWW:
- Obsługa żądań HTTP,
- Rejestracja żądań,
- Uwierzytelnianie i kontrola dostępu,
- Kryptografia,
- Wybór wersji językowej wysyłanych plików.
Przykładami serwerów WWW są: Apache, Microsoft Internet Information
Services, Sun Java System, Web Server. Coraz częściej serwery WWW
stanowią standardowy składnik systemu operacyjnego.
TAI LJ
17
Serwer WWW
Funkcjonowanie serwera daje się opisać jako cykliczne powtarzanie
następującej sekwencji:
1. Nawiązanie połączenia z klientem (na jego żądanie).
2. Zidentyfikowanie nazwy żądanego pliku.
3. Odczytanie pliku (z dysku).
4. Przesłanie klientowi zawartości pliku.
5. Zwolnienie połączenia TCP.
Serwer WWW Serwer WWW
ab.com xy.com
Klient WWW
hiperłącze
hiperłącze
Protokół
TCP
Internet
TAI LJ
Wielowątkowy serwer WWW
Poprawienie wydajności serwera odbywa się poprzez tryb pracy wielowątkowej
(multithreading).
Proces realizowany przez serwer zostaje podzielony na okresloną liczbę
wątków, z których jeden pełni rolę wątku czołowego (front-end), pozostałe to
moduły robocze (processing modules).
Komputer serwera WWW
Cache
Moduł
roboczy
Wątek
czołowy
Nadchodzące Wychodząca
żądanie odpowiedz
TAI LJ
18
Wielowątkowy serwer WWW
Wątek czołowy, otrzymując żądanie, przekazuje je do pierwszego
wolnego modułu roboczego, który wykonuje poniższe czynności:
1. Rozpoznanie nazwy żądanej strony WWW
2. Uwierzytelnienie klienta
3. Sprawdzenie uprawnień klienta
4. Sprawdzenie uprawnień dostępu do strony WWW
5. Sprawdzenie zawartości pamięci cache
6. Wczytanie pliku z dysku do pamięci cache
7. Rozpoznanie typu MIME zawartości pliku w celu wysłania tej informacji
klientowi
8. Wykonanie pewnych czynności dodatkowych
9. Wysłanie odpowiedzi klientowi
10. Zarejestrowanie transakcji w kronice serwera.
TAI LJ
Model farmy serwerów WWW
Zwielokrotnienie mocy obliczeniowej systemu przez zastosowanie tzw. farmy
serwerów (server farm). Każdy z serwerów wyposażony jest w wiele dysków i
pracuje w trybie wielowątkowym.
Potokowa praca
Węzeł roboczy
Router
wielowątkowa
(oddzielny komputer)
Sieć lokalna LAN
Komputer czołowy
(front end)
TAI LJ
19
Model farmy serwerów WWW
Pominięcem komputera czołowego w przekazywaniu klientowi wynikowego pliku
(wyręczenie TCP, TCP handoff).
Węzeł
Węzeł
roboczy
roboczy
3
2
2
3
Do
Komputer klienta
Komputer
czołowy
czołowy
1
1 4
Od
Od Do
klienta
klienta klienta
Omijanie komputera czołowego
Zwykly tryb realizacji
przez odpowiedz
żądania
TAI LJ
Cechy protokołu
HTTP jest protokołem typu klient-serwer
Protokół służy do pobierania stron WWW z serwera WWW
Transmisja 8-bitowa
Komendy tekstowe
HTTP do transportu wykorzystuje protokół TCP (port 80)
Wersja z szyfrowaniem  HTTPS (port TCP 443)
Protokół bezstanowy, bezsesyjny
TAI LJ
20
Cechy protokołu
Protokół HTTP przekazuje informacje, używając różnych wersji języka HTML
Utworzenie i kontrolowanie w sieci treści dynamicznej
- skrypty działające po stronie serwera lub klienta
- skrypty CGI (Common Gateway Interface)
Informacje wymagane do przetworzenia żądań i odpowiedzi znajdują się w
samych wiadomościach
HTTP - standard IETF (Internet Engineering Task Force), najnowsza wersja
HTTP 1.1 (RFC 2616 http://tools.ietforg/html/rfc2616)
Nadzorowany przez konsorcjum World Wide Web Consortium
(http//www.w3.org)
Adres docelowy jest formowany w postaci adresu URL (Uniform Resource
Locator).
TAI LJ
Protokół HTTP
Interakcja przeglądarki z serwerem WWW odbywa się wg modelu bezpołączeniowego.
1. Użytkownik końcowy przekazuje klientowi WWW adres URL żądanego
dokumentu. Klient WWW wyodrębnia z adresu URL adres DNS (lub IP)
komputera, na którym pracuje oprogramowanie serwera WWW.
2. Klient WWW otwiera połączenie TCP do serwera WWW i wysyła komunikat
żądania HTTP, zawierający nazwę i ścieżkę prowadzącą do żądanego
dokumentu.
3. Serwer WWW pobiera żądany dokument z systemu plików i wysyła
komunikat odpowiedzi HTTP, do którego dołącza ten dokument,
najczęściej zapisany w formacie HTML.
4. Klient WWW wizualizuje dokument w formie graficznej i zamyka połączenie
sieciowe z serwerem WWWW.
TAI LJ
21
Zestaw operacji CRUD
Zestaw operacji "CRUD" (Create, Retrieve, Update, Delete, Utwórz, Odczytaj, Aktualizuj i
Usuń) obsługiwanych poprzez żądania HTTP za pomoca metod:
PUT - umieszczenie zasobu na serwerze. Ciało komunikatu zawiera zasób, zaś
polecenie precyzuje URL, pod którym zasób powinien zostać umieszczony.
GET - pobieranie zasobów. Nie przewiduje ciała komunikatu.
POST - przekazanie danych, które mają zmodyfikować stan zasobu
wyspecyfikowanego w żądaniu. Komunikat zawiera ciało.
DELETE - usuwanie zasobu skojarzonego z adresem URL podanym w żądaniu.
HEAD - sprawdzanie dostępności zasobu. Zwracany w odpowiedzi jest komunikat
nie posiadający ciała. Nagłówki pozwalają określić datę ostatniej modyfikacji
zasobu oraz sugerowany czas, przez jaki pobierający go klienci powinni
buforować aktualną wersję.
TAI LJ
Elementy żądania HTTP
1. Nagłówek. Wiersz nagłówka zawiera żądanie informacji bądz ustanowienia
warunku. Wiersze nagłówka są opcjonalne, (w protokole HTTP 1 wymagany jest
nagłówek Host).
Accept:text/plain - ustala rodzaj treści jako zwykły tekst.
Host:www.pk.edu - podaje nazwę domeny serwera,
Range:bytes=200-500 - wymaga podania pewnego zakresu danych żądanego
zasobu.
2. Wiersz żądania. Wiersz żądania zawiera metodę i żądany zasób, względem
którego będzie podjęte wskazane działanie, a także pole wersji protokołu.
GET/http/1.1 - spowoduje zwrócenie strony domyślnej (najczęściej index.html)
danej domeny, o ile witryna internetowa nie ustawiła w kliencie pliku cookie,
który spowoduje zwrócenie zupełnie innej strony.
3. Puste wiersze- znaki CR (Carriage Return) oraz LF (Line Feed).
4. Część główna (opcjonalna) - informacje zwrócone przez serwer.
TAI LJ
22
Połączenia
Połączenie z serwerem WWW - ustanowienie połączenia TCP (port 80).
Protokół HTTP v.1.1 możliwia połączenie trwałe (persistent connection):
- realizacja wielu żądań,
- realizacja żądań nakładanych (overlapped requests, pipelined requests).
Protokoł HTTPS  używa do szyfrowania standardu SSL/TLS.
W protokole HTTP 1.1 został dodany nagłówek Upgrade.
Żądanie zaszyfrowanego zasobu:
GET /encrypted-area HTTP 1.1
Host: www.domain.ext
Odpowiedz serwera:
HTTP/1.1 426 Upgrade Required (komunikat stanu)
Upgrade: TLS/1.0. HTTP/1.1 (to są wymagane protokoły)
Connection: Upgrade
TAI LJ
Wbudowane metody żądań HTTP
GET Udostępnienie strony WWW
HEAD Udostępnienie nagłówka strony WWW
PUT Zapamiętanie strony WWW w serwerze
POST Dołączenie zawartości do nazwanego obiektu
DELETE Usunięcie strony WWW z serwera
TRACE Odesłanie otrzymanego żądania
CONNECT Wysłanie zaszyfrowanych danych przez HTTPS
OPTIONS Udostępnienie wartości / stanu niektórych opcji
TAI LJ
23
Wbudowane metody żądań HTTP
Metoda GET - wyraża żądanie udostępnienia przez serwer obiektu (w szczególności
pliku zawierającego stronę WWW). Zawartość obiektu musi być zgodna ze
standardem MIME.
GET HTTP/1.1
Metoda HEAD - stanowi żądanie udostępnienia nagłówka strony, bez jej zawartości.
Metoda PUT- stanowi żądanie zapamiętania obiektu na dyskach serwera. Treść
obiektu zawarta jest w ciele żądania i kodowana zgodnie ze standardami MIME.
Rozpoczyna się od pola Content-type:, po którym mogą następować pola
uwierzytelniające umożliwiające serwerowi weryfikację uprawnień użytkownika do
zapisywania stron WWW.
TAI LJ
Wbudowane metody żądań HTTP
Metoda POST - dołącza do obiektu nową zawartość.
Metoda DELETE - usuwa obiekty z serwera. Nie ma gwarancji, że plik zawierający
odnośny obiekt istotnie zostanie usunięty, (mogą zabraniać atrybuty tego pliku).
Metoda TRACE - wykorzystywana jest do celów diagnostycznych. Odesłanie
otrzymanego żądania w niezmienionej postaci (zawartość, jaka faktycznie dotarła do
serwera).
Metoda CONNECT - tworzy tunel, wykorzystując nawiązane połączenie sieciowe.
Używana do wysyłania zaszyfrowanych danych przez bezpieczny protokół HTTPS.
Metoda OPTIONS - odczytanie stanu lub wartości poszczególnych opcji / ustawień /
właściwości konkretnego pliku.
TAI LJ
24
Kody stanów HTTP
1xx Informacja 100 = serwer zaakceptował żądanie klienta
2xx Powodzenie 200 = akceptacja, pomyślne zrealizowanie żadania
204 = nie żądano zawartości
3xx Przeadresowanie 301 = żądany zasób znajduje się pod innym adresem
304 = kopia strony w pamięci cache jest nadal aktualna
4xx Błąd klienta 403 = zabroniony dostęp do strony
404 = żądana strona nie istnieje
5xx Błąd serwera 500 = wewnętrzny błąd serwera
503 = spróbować pózniej
TAI LJ
Nagłówki komunikatów
Nagłówki żądań (request headers) linie dodatkowych informacji związanych z
żądaniem.
User-Agent żądanie Informacja o przeglądarce i systemie operacyjnym
Accept żądanie Typy stron, które klient jest w stanie obsłużyć
Accept-Charset żądanie Zestaw znaków akceptowalny dla klienta
Accept - Encoding żądanie Kodowanie obsługiwane przez klienta
Accept-Language żądanie Wersja językowa systemu klienta
Host żądanie Nazwa DNS serwera
Authorization żądanie Lista uwierzytelnień klienta
Cookie żądanie Istniejące cookies wysyłane do serwera
TAI LJ
25
Nagłówki komunikatów
Nagłówki odpowiedzi (response headers) linie dodatkowych informacji związanych
z odpowiedzią.
Date żądanie Data i czas wysłania komunikatu
i odpowiedz
Upgrade żądanie Protokół, na który nadawca żąda przełączenia
i odpowiedz
Server odpowiedz Informacja o serwerze
Content-Encoding odpowiedz Sposób kodowania zawartości (np. gzip)
Content-Language odpowiedz Wersja językowa strony
Content odpowiedz Długość strony w bajtach
Content-Type odpowiedz Typ MIME zawartości strony
Last-Modified odpowiedz Data i czas ostatniej modyfikacji strony
TAI LJ
Komunikat żądania HTTP
Typowy komunikat żądania HTTP.
GET /katalog/strona.html HTTP/1.1
Host: www.uczelnia.edu
Connection: close
User agent: Mozilla/4.0
Accept-language: pl
TAI LJ
26
Komunikat żądania HTTP
Ogólny format komunikatu żądania.
TAI LJ
Komunikat odpowiedzi HTTP
Typowy komunikat odpowiedzi HTTP.
HTTP/1.1 200 OK
Connection: close
Date: Thu, 03 Jul 2011 12:00:15
Server: Apache/1.3.0 (Unix)
Last-Modified: Sun, 5 May 2011 09:23:24 GMT
Content-Length: 6821
Content-Type: text/html
(dane dane dane dane dane & )
TAI LJ
27
Kody statusu i komunikatów
200 OK. Żądanie się powiodło i w odpowiedzi są zwracane dane.
301 Moved Permanently. Żądany obiekt został trwale przeniesiony.W nagłówku
Location: komunikatu odpowiedzi jest umieszczany nowy adres URL. Klient
automatycznie pobierze nowy adres URL.
400 Bad Request. Jest to ogólny kod o błędzie, wskazujący, że żądanie nie mogło być
przetworzone przez serwer.
404 Not Found. Żądany dokument nie istnieje na serwerze.
505 HTTP Version Not Supported. Żądana wersja protokołu HTTP nie jest
obsługiwana przez serwer.
TAI LJ
Komunikat odpowiedzi HTTP
Ogólny format komunikatu odpowiedzi.
TAI LJ
28
Przekazywanie komunikatów HTTP
Sieć Internetu w architekturze aplikacji WWW.
7. Aplikacji
6. Prezentacji Aplikacji HTTP
5. Sesji
4. Transportowa Transportowa TCP
3. Sieciowa Internetowa IP
Aącza Ethernet
2. Aącza danych
1. Fizyczna
OSI Warstwy TCP/IP Przykłady
Stos protokołów TCP/IP
TAI LJ
Przekazywanie komunikatów HTTP
Przekazywania komunikatów między komputerami w tej samej sieci.
HTTP HTTP
TCP TCP
IP IP
Ethernet Ethernet
Przekazywanie komunikatów http za pośrednictwem stosu
TCP/IP
TAI LJ
29
Przekazywanie komunikatów HTTP
Przekazywania komunikatów między komputerami należących do różnych sieci.
HTTP HTTP
TCP TCP
IP IP
IP
Ethernet Ethernet
Ethernet
Klient Router Serwer
Przekazywanie komunikatów HTTP za pośednictwem
stosu TCP/IP i z wykorzystaniem routera
TAI LJ
Architektury aplikacyjne
1. Warstwa prezentacji
2. Warstwa logiki biznesowej
3. Warstwa danych
Sieć WWW
ć
ć
ć
Warstwa prezentacji
Warstwa logiki biznesowej
Warstwa danych
Serwer aplikacyjny
TAI LJ
30
Architektury aplikacyjne
Architektura monolityczna.
Aplikacja
Baza
GUI
danych
TAI LJ
Architektury aplikacyjne
Architektura Klient-Serwer.
Aplikacja Baza
Sieć
GUI
danych
TAI LJ
31
Architektura WWW
Na komputerze użytkownika końcowego funkcjonuje wyłącznie oprogramowanie
obsługi graficznego interfejsu użytkownika, natomiast oprogramowanie właściwej
aplikacji oraz oprogramowanie dostępu do danych znajdują się na oddzielnych
komputerach.
Baza
Aplikacja Sieć
Sieć
GUI
danych
Architektura WWW
TAI LJ
Rozszerzona architektura WWW
Realizacja aplikacji WWW wymaga zastosowania architektury, w skład której
wchodzą trzy programowe warstwy funkcjonalne:
1. Warstwa klienta.
2. Warstwa aplikacji.
3. Warstwa danych.
Serwer HTTP Serwer
bazy
SQL
HTTP
danych
Serwer
aplikacji
aplikacja
Warstwa klienta Warstwa aplikacji Warstwa danych
TAI LJ
32
Standaryzacja w technologiach internetowych
Organizacje opracowujące standardy:
1. Internet Corporation for Assigned Names and Numbers (ICANN) -
zarządzanie adresami.
2. Internet Society - standaryzacja, edukacja i polityka rozwoju w
zakresie Internetu.
3. Internet Research Task Force (RFTF) - długoterminowe projekty
badawcze.
4. Internet Engineering Task Force (IETF) - krótkoterminowe
przedsięwzięcia zorientowane na rozwijanie standardów.
5. World Wide Web Consortium (W3C) - standaryzacja w zakresie
protokołów warstwy aplikacyjnej, języków opisu oraz formatów danych
związanych z systemem WWW.
TAI LJ
33


Wyszukiwarka

Podobne podstrony:
tai w3 xml nstac www
W1 NTCh www
www wsb2 pl w1
www livemocha com angielski lekcja audio
KEM w1
www haker pl haker start pl warsztaty1 temat=3(1)
micros multimetry www przeklej pl
www apextk pl index
www haker pl haker start pl warsztaty1 temat=30(1)
Raport?danie? Krakow 06 [ www potrzebujegotowki pl ]
program szkolenia specjalistycznego www katalogppoz pl
js zegarek na www
MN w1 Minimum funkcji
w1
SD przykłady do w1 13

więcej podobnych podstron