background image

Mariusz Chmielewski - ISI WAT

1

por. mgr inż. Mariusz Chmielewski

Instytut Systemów Informatycznych

Wydział Cybernetyki

Wojskowa Akademia Techniczna

Techniki Internetowe

background image

Mariusz Chmielewski - ISI WAT

2

Plan wykładu

Plan wykładu

• Internet - organizacja sieci Internet
• Podstawowe protokoły sieci Internet
• Protokół HTTP

– Anatomia protokołu
– Przykładowa sesja
– Zasady wykorzystania

• Języki i technologie obecne w sieci Internet 

– Prezentacja - HTML, CSS, JavaScript, Flash
– Logika – PHP, VBS, ASP, JSP, ActionScript

• Usługa WWW
• Podstawy HTML

background image

Mariusz Chmielewski - ISI WAT

3

Organizacja sieci Internet

Organizacja sieci Internet

• Internet stał się przełomem technologicznym i 

społecznym ostatniego ćwierćwiecza. 

• Technologie opracowane dla potrzeb Internetu 

rozprzestrzeniły się na inne rozwiązania m.in.  
systemy klient-serwer, systemy rozproszone 

• Według definicji sformułowanej w dokumencie 

RFC 1463 (specyfikacji, standardu) system 
nazywany Internetem złożony jest z 
następujących elementów: 

– połączone sieci oparte o protokoły TCP/IP;
– społeczność, która używa i rozwija tą sieć;
– zbiór zasobów znajdujących się w tej sieci.

background image

Mariusz Chmielewski - ISI WAT

4

Organizacja sieci Internet

Organizacja sieci Internet

• Trójelementowa definicja wprowadza dobre 

rozróżnienie pomiędzy technicznymi aspektem 
Internetu,

– połączone sieci oparte o protokoły TCP/IP (aspekt 

technologiczny);

– społeczność, która używa i rozwija tą sieć (aspekt 

społeczny);

– zbiór zasobów znajdujących się w tej sieci (aspekt 

informacyjny). 

• Użytkowanie Internetu jest to nic innego jak 

działanie członków społeczności przy pomocy 
sieci, mające na celu odnalezienie i wykorzystanie 
znajdujących się w niej zasobów informacyjnych. 

background image

Mariusz Chmielewski - ISI WAT

5

Organizacja sieci Internet

Organizacja sieci Internet

• Wraz z ewolucją Internetu, standardów opisu 

zasobów, organizacji sieci:

– zwiększa się liczba zasobów informacyjnych,
– pojawiają się nowe ich kategorie zasobów,
– problemem staje się znalezienie trafnych 

dostępnych informacji na dany temat. 

• Rolę przewodnika pełnią w nim katalogi 

zasobów internetowych i usługi wyszukiwarki. 

• Rozwój informatyki oraz technologii związanej 

z siecią Internet spowodował wiele 

negatywnych skutków dotyczących 

przeszukiwania ogromnych zasobów 

informacyjnych. 

background image

Mariusz Chmielewski - ISI WAT

6

Problemy Internetu – Semantyczny Web

Problemy Internetu – Semantyczny Web

• Jednym z wielu problemów jest poprawna 

klasyfikacja przeglądanych stron oraz interpretacja 

meta danych zawartych w nagłówkach HTML, które 

przez wielu twórców stron są nadużywane by 

zwiększyć popularność strony.

• Wyszukiwarki internetowe korzystają z coraz 

bardziej wyszukanych algorytmów przeszukiwania 

pełnokontekstowego oraz oceny witryn 

internetowych. 

• Nowa technologia – semantyczny opis danych

– Wykorzystuje sie standardy opisu danych semantycznych 

RDF, OWL, DAML służące jako nowe narzędzie 

pozwalające na integrację wielu źródeł danych oraz 

automatyzację procesu przeszukiwania sieci i 

samoorganizacji sieci Internet.

background image

Mariusz Chmielewski - ISI WAT

7

Budowa sieci Internet

Budowa sieci Internet

• Technologia sieci Internet powstała w 

bezpośredniej styczności z rozwojem 
sieci telekomunikacyjnych. 

• Z punktu widzenia złożoności, sieci 

komputerowe można podzielić na 
grupy:

– LAN (Local Area Network) 
– CAN (Campus Area Network)
– MAN (Metropolitan Area Network)
– WAN (Wide Area Network )

background image

Mariusz Chmielewski - ISI WAT

8

Local Area Network

Local Area Network

• LAN (Local Area Network) - 

najpowszechniej spotykany 
rodzaj sieci, który składa się z 
kilkudziesięciu do kilkuset 
komputerów połączonych w 
miarę możliwości jednolitym 
nośnikiem. 

– Sieci te zainstalowane są na 

niewielkim obszarze (np. w 
jednym budynku, w firmach). 

– Sieci te składają się z kilku do 

kilkudziesięciu komputerów 
spiętych ze sobą w konfigurację 
magistralową, opartą na kanale 
przewodowym w postaci np. 
kabla koncentrycznego, lub w 
gwiazdę (jest to gwiazda 
logiczna, jednakże fizycznie 
widziana jest jako szyna-
magistrala). 

background image

Mariusz Chmielewski - ISI WAT

9

Metropolitan Area Network

Metropolitan Area Network

• MAN - Metropolitan Area Network - sieć WAN 

obejmująca niewielki obszar geograficzny:

– sieci tego rodzaju budowane są w dużych 

miastach; charakteryzują się wysoką 
przepustowością i są używane przede wszystkim 
przez urządzenia badawcze i w zastosowaniach 
komercyjnych o nasilonym przepływie danych 
VoIP, telekonferencje, systemy CMS.

– Zasadniczo sieci takie obejmują jedno miasto lub 

region.

– Dodatkowo ze względu na specyfikę tematyczną 

wydziela się sieci  uczelniane (CAN - Campus Area 
Network) dedykowane  społecznościom 
akademickim. 

background image

Mariusz Chmielewski - ISI WAT

10

Metropolitan Area Network

Metropolitan Area Network

background image

Mariusz Chmielewski - ISI WAT

11

Wide Area Network

Wide Area Network

• WAN - Wide Area Network - większość sieci 

rozległych to kombinacje sieci lokalnych i 

dodatkowych połączeń między nimi. 

– przykład: tego typu sieci mogą być sieci ISDN (Integrated Services 

Digital Network) będące sieciami cyfrowymi z integracją usług. 

– ISDN wykorzystuje łącza telefoniczne, istniejące okablowanie 

sieciowe.

 

• WAN to sieć rozległa:

bazująca na połączeniach telefonicznych,

złożona z komputerów znajdujących się w dużych 

odległościach od siebie,

łącząca ze sobą użytkowników na terenie całego kraju;

wymagane jest zaangażowanie publicznej sieci 

telekomunikacyjnej;

sieć rozległa łączy sieci lokalne LAN i miejskie MAN. 

background image

Mariusz Chmielewski - ISI WAT

12

Wide Area Network

Wide Area Network

• Do realizacji połączeń dla sieci WAN zastosuje się 

routery, których zadaniem jest realizowanie pomostu 

pomiędzy oddalonymi sieciami oraz realizowanie 

dostępu do Internetu. 

• Bezpieczeństwo routera od strony sieci komputerowej 

jest nadzorowane przez procedurę autoryzacyjną 

kontrolującą logowanie użytkowników do urządzenia.

• WAN wykorzystuje łącza: kablowe, światłowodowe, 

mikrofalowe oraz satelitarne.

– Nie można także zapomnieć o sieci NASK (Naukowa i 

Akademicka Sieć Komputerowa) i najbardziej chyba znanej 

sieci WAN, którą jest Internet.

– Sieci rozległe są aktualnie tworzone i bardzo szybko rozwijają 

się. Na świecie powstaje wiele sieci rozległych, zarządzanych 

i wykorzystywanych przez wielkie korporacje przemysłowe, 

banki, uczelnie.

background image

Mariusz Chmielewski - ISI WAT

13

Wide Area Network

Wide Area Network

background image

Mariusz Chmielewski - ISI WAT

14

Protokoły internetowe

Protokoły internetowe

• Protokoły internetowe to podzbiór 

protokołów komunikacyjnych, mający 
zastosowanie w środowisku sieci Internet.

• Protokoły internetowe to zbiór ścisłych 

reguł i kroków postępowania, które są 
automatycznie wykonywane przez 
urządzenia w celu nawiązania łączności i 
wymiany danych. 

• Do najpopularniejszych należą 

protokołów obecnych w sieci Internet 
należą:

background image

Mariusz Chmielewski - ISI WAT

15

TCP/IP (ang. 

TCP/IP (ang. 

Transmission Control Protocol / 

Transmission Control Protocol / 

Internet Protocol)

Internet Protocol)

Pakiet najbardziej rozpowszechnionych protokołów 

komunikacyjnych współczesnych sieci komputerowych.

– jest standardem komunikacji otwartej - otwartość oznacza tu 

możliwości komunikacji między dowolnymi typami urządzeń, bez 

względu na ich fizyczną różnorodność. 

– zwany jest także stosem protokołów ze względu na strukturę 

warstwową, w której ramka protokołu wyższej warstwy jest 

zawarta jako dane w protokole warstwy niższej. 

Termin bezpołączeniowy oznacza, że sesja nie jest 

ustanawiana przed rozpoczęciem wymiany danych.

Termin zawodny oznacza, że dostarczenie pakietu nie jest 

gwarantowane. Protokół IP zawsze próbuje dostarczyć 

pakiet. Pakiet IP może zostać zagubiony, dostarczony nie 

w kolejności, zdublowany lub opóźniony. Protokół IP nie 

naprawia takich błędów.

• Rozpoznawanie dostarczonych i odzyskiwanie utraconych pakietów 

wykonywane jest przez protokoły warstwy wyższej, np. protokół TCP. 

• IPv4 Opracowany pod koniec lat 70-tych na zlecenie Departamentu 

Obrony USA, miał za zadanie połączyć różne rodzaje wojskowych 

sieci WAN w jedną zunifikowaną sieć ARPANet. 

background image

Mariusz Chmielewski - ISI WAT

16

IP

IP

v4 - IPv6

v4 - IPv6

• Rosnący w siłę elektroniczny biznes domaga się z kolei poprawy 

bezpieczeństwa danych przesyłanych siecią. 

• Aby nadążyć za stałą ekspansją Internetu, musiała nastąpić 

nowelizacja ujawniające się obecnie w protokole IPv4 słabości a także 

uzyskać pewien "zapas" na przyszłość. 

• Do najważniejszych zmian IPv6 należą:

– Dłuższe adresy. Dotychczasowe adresy 32-bitowe zastąpione zostały 128-

bitowymi. 

– Adres IPv6 składa się z ośmiu 16-bitowych części oddzielonych nie 

pojedynczymi kropkami, ale dwukropkami. Przykładowy adres przybierze 

więc formę: 1AA4:2C39:EFF4:877D: 12345:4G3E:5HBB:C47D. 

– Większa elastyczność i nowe struktury adresowe. Trzy formaty adresów: 

mające już swoje odpowiedniki w IPv4 

– Unicast, multicast, anycast - (Wprowadzony w protokole IPv6 nowy tryb 

adresowania pakietów. Anycast przewiduje możliwość transmisji danych 

do najbliższych (bliżej nieokreślonych) hostów-bram spośród wielu 

dostępnych z danej lokalizacji, z zamiarem powierzenia jednemu z nich 

zadania dalszego przekierowania pakietu ).

– Uproszczony i bardziej elastyczny format nagłówków pakietów.

– Zwiększenie bezpieczeństwa pakietów. Wprowadzono elementy 

zapobiegania najczęściej spotykanym atakom oraz wbudowane opcje 

szyfrowania i identyfikacji hostów (za pomocą towarzyszącego protokołu 

IPsec). Tym samym zapewnione zostało bezpieczeństwo na całej długości 

połączenia.

background image

Mariusz Chmielewski - ISI WAT

17

UDP – (ang. User Datagram Protocol )

UDP – (ang. User Datagram Protocol )

• jest standardem TCP/IP zdefiniowanym w specyfikacji RFC 

768

• jest używany wymiennie zamiast TCP do szybkiego, 

uproszczonego, mniej niezawodnego przesyłania danych 

między hostami,

• jest usługą wymiany datagramów bez ustanowionego 

połączenia, która nie zapewnia dostarczenia i sprawdzania 

sekwencji datagramów,

• host źródłowy wymagający niezawodnych połączeń 

powinien korzystać z protokołu TCP lub programu, który 

posiada wbudowane własne usługi sprawdzania sekwencji i 

potwierdzania,

• port UDP funkcjonuje jako pojedyncza kolejka komunikatów, 

która służy do odbierania wszystkich datagramów przez 

program określony za pomocą numeru portu protokołu,

• oznacza to, że programy UDP mogą jednocześnie odbierać 

kilka komunikatów. Strona serwera każdego programu 

wykorzystującego port UDP oczekuje na komunikaty 

przychodzące do znanego numeru portu.

background image

Mariusz Chmielewski - ISI WAT

18

HTTP (ang. Hypertext Transfer Protocol)

HTTP (ang. Hypertext Transfer Protocol)

To protokół sieci WWW (ang. World Wide Web),

obecną definicję HTTP stanowi RFC 2616. 

za pomocą protokołu HTTP przesyła się żądania 

udostępnienia dokumentów WWW i informacje o 

kliknięciu odnośnika oraz informacje z formularzy. 

zadaniem stron WWW jest publikowanie dowolnej 

ustandaryzowanej informacji, 

HTTP udostępnia znormalizowany sposób 

komunikowania się komputerów ze sobą, określa on 

formę żądań klienta dotyczących danych oraz formę 

odpowiedzi serwera na te żądania. 

jest zaliczany do protokołów bezstanowych (ang. 

stateless) z racji tego, że nie zachowuje żadnych 

informacji o poprzednich transakcjach z klientem 

(po zakończeniu transakcji wszystko "przepada"). 

background image

Mariusz Chmielewski - ISI WAT

19

HTTP (ang. Hypertext Transfer Protocol)

HTTP (ang. Hypertext Transfer Protocol)

taka budowa pozwala to znacznie zmniejszyć 
obciążenie serwera, jednak jest kłopotliwe w 
sytuacji, gdy np. trzeba zapamiętać konkretny 
stan dla użytkownika, który wcześniej łączył się 
już z serwerem. 

najczęstszym rozwiązaniem tego problemu jest 
wprowadzenie mechanizmu cookies. 

inne podejścia to m.in. sesje po stronie serwera, 
ukryte parametry (gdy aktualna strona zawiera 
formularz) oraz parametry umieszczone w URL-
u (jak np. /index.php?userid=3).

HTTP standardowo korzysta z portu nr 80 (TCP).

background image

Mariusz Chmielewski - ISI WAT

20

HTTPS (ang. HyperText Transfer Protocol Secure)

HTTPS (ang. HyperText Transfer Protocol Secure)

to szyfrowana wersja protokołu HTTP

zamiast używać w komunikacji klient-serwer 

niezaszyfrowanego tekstu, szyfruje go za 

pomocą technologii SSL. 

zapobiega to przechwytywaniu i zmienianiu 

przesyłanych danych

HTTPS działa domyślnie na porcie nr 443 w 

protokole TCP

protokół HTTP jest warstwę wyżej (korzystającą 

z warstwy SSL), najpierw następuje więc 

wymiana kluczy SSL, a dopiero później żądanie 

HTTP. 

powoduje to, że jeden adres IP może serwować 

tylko jedną domenę lub też tylko subdomeny 

danej domeny (zależnie od certyfikatu).

background image

Mariusz Chmielewski - ISI WAT

21

FTP (ang. File Transfer Protocol)

FTP (ang. File Transfer Protocol)

• protokół typu klient-serwer, który umożliwia przesyłanie plików z i na 

serwer poprzez sieć TCP/IP,

• protokół ten jest zdefiniowany przez IETF w RFC 959, jest protokołem 

8-bitowym, dlatego nie wymaga specjalnego kodowania danych na 

postać 7-bitową, tak jak ma to miejsce w przypadku poczty 

elektronicznej (standardy MIME, base64, quoted-printable, 

uuencode). 

• do komunikacji wykorzystywane są dwa połączenia TCP, jedno z nich 

jest połączeniem kontrolnym za pomocą którego przesyłane są np. 

polecenia do serwera, drugie natomiast służy do transmisji danych 

m.in. plików. 

• FTP działa w dwóch trybach: aktywnym i pasywnym, w zależności od 

tego, w jakim jest trybie, używa innych portów do komunikacji. 

– jeżeli FTP pracuje w trybie aktywnym, korzysta z portów: 21 dla poleceń 

(połączenie to jest zestawiane przez klienta) oraz 20 do przesyłu danych. 

Połączenie nawiązywane jest wówczas przez serwer;

– jeżeli FTP pracuje w trybie pasywnym wykorzystuje port 21 do poleceń i 

port o numerze > 1024 do transmisji danych, gdzie obydwa połączenia 

zestawiane są przez klienta. 

W sieciach ukrytych za firewallem komunikacja z aktywnymi serwerami FTP jest 

możliwa, tylko pod warunkiem, jeżeli odpowiednie porty na firewallu 

(routerze) są zwolnione. 

background image

Mariusz Chmielewski - ISI WAT

22

SMTP (ang. Simple Mail Transfer Protocol)

SMTP (ang. Simple Mail Transfer Protocol)

• protokół komunikacyjny opisujący sposób przekazywania poczty 

elektronicznej w Internecie,

• względnie prosty, tekstowy protokół, w którym określa się co najmniej 

jednego odbiorcę wiadomości (w większości przypadków weryfikowane 

jest jego istnienie), a następnie przekazuje treść wiadomości,

• demon SMTP działa najczęściej na porcie 25,

• protokół ten nie radził sobie dobrze z plikami binarnymi, ponieważ 

stworzony był w oparciu o czysty tekst ASCII. W celu kodowania plików 

binarnych do przesyłu przez SMTP stworzono standardy takie jak MIME. 

W dzisiejszych czasach większość serwerów SMTP obsługuje 

rozszerzenie 8BITMIME pozwalające przesyłać pliki binarne równie łatwo 

jak tekst,

• SMTP nie pozwala na pobieranie wiadomości ze zdalnego serwera. Do 

tego celu służą protokoły POP3 lub IMAP,

• Jednym z ograniczeń pierwotnego SMTP jest brak mechanizmu 

weryfikacji nadawcy, co ułatwia rozpowszechnianie niepożądanych 

treści poprzez pocztę elektroniczną (wirusy, spam),

Żeby temu zaradzić stworzono rozszerzenie SMTP-AUTH, które jednak jest tylko 

częściowym rozwiązaniem problemu - ogranicza wykorzystanie serwera 

wymagającego autoryzacji do zwielokrotniania poczty. Nadal nie istnieje metoda, 

dzięki której odbiorca autoryzowałby nadawcę – nadawca może "udawać" serwer 

i wysłać dowolny komunikat do dowolnego odbiorcy.

background image

Mariusz Chmielewski - ISI WAT

23

POP3 (ang. Post Office Protocol version 3)

POP3 (ang. Post Office Protocol version 3)

• to protokół internetowy z warstwy aplikacji pozwalający na 

odbiór poczty elektronicznej ze zdalnego serwera do lokalnego 

komputera poprzez połączenie TCP/IP.

• ogromna większość klientów korzysta z POP3 do odbioru 

poczty,

• w przypadku krótkotrwałego połączenia z siecią, poczta nie 

jest w stanie poprawnie dotrzeć protokołem SMTP. W takiej 

sytuacji w sieci istnieje specjalny serwer, który przez SMTP 

odbiera przychodzącą pocztę i ustawia ją w kolejce. Kiedy 

użytkownik połączy się z siecią, to korzystając z POP3 może 

pobrać czekające na niego listy do lokalnego komputera,

• komunikacja POP3 może zostać zaszyfrowana z 

wykorzystaniem protokołu SSL. Jest to o tyle istotne, że w 

POP3 hasło przesyłane jest otwartym tekstem, o ile nie 

korzysta się z opcjonalnej komendy protokołu POP3, APOP.

• protokół POP3, podobnie, jak inne protokoły internetowe (np. 

SMTP, HTTP) jest protokołem tekstowym, czyli w odróżnieniu 

od protokołu binarnego, czytelnym dla człowieka. 

• komunikacja między klientem pocztowym, a serwerem 

odbywa się za pomocą czteroliterowych poleceń 

background image

Mariusz Chmielewski - ISI WAT

24

POP3 (ang. Post Office Protocol version 3)

POP3 (ang. Post Office Protocol version 3)

• Jednak protokół ten ma wiele ograniczeń:

– połączenie trwa tylko, jeżeli użytkownik pobiera 

pocztę i nie może pozostać uśpione, 

– do jednej skrzynki może podłączyć się tylko 

jeden klient równocześnie, 

– każdy list musi być pobierany razem z 

załącznikami i żadnej jego części nie można w 

łatwy sposób pominąć - istnieje co prawda 

komenda top, ale pozwala ona jedynie określić 

przesyłaną liczbę linii od początku wiadomości, 

– wszystkie odbierane listy trafiają do jednej 

skrzynki, nie da się utworzyć ich kilku, 

– serwer POP3 nie potrafi sam przeszukiwać 

czekających w kolejce listów.

 

background image

Mariusz Chmielewski - ISI WAT

25

IMAP (ang. Internet Message Access Protocol)

IMAP (ang. Internet Message Access Protocol)

• to internetowy protokół pocztowy 

zaprojektowany jako następca POP3,

• w przeciwieństwie do POP3, który umożliwia 

jedynie pobieranie i kasowanie poczty, IMAP 

pozwala na zarządzanie wieloma folderami 

pocztowymi oraz pobieranie i operowanie na 

listach znajdujących się na zdalnym 

serwerze,

• IMAP pozwala na ściągnięcie nagłówków 

wiadomości i wybranie, które z wiadomości 

chcemy ściągnąć na komputer lokalny,

• pozwala na wykonywanie wielu operacji, 

zarządzanie folderami i wiadomościami.

background image

Mariusz Chmielewski - ISI WAT

26

XMPP (ang. Extensible Messaging and Presence 

XMPP (ang. Extensible Messaging and Presence 

Protocol)

Protocol)

• protokół bazujący na języku XML 

umożliwiający przesyłanie w czasie 

rzeczywistym wiadomości oraz statusu,

• XMPP to próba ustalenia standardu w oparciu 

o istniejące rozwiązania Jabbera,

• Protokół ma zastosowanie nie tylko w 

komunikatorach, ale również w innych 

systemach błyskawicznej wymiany informacji,

• IETF opublikowało RFC dotyczące XMPP w 

statusie Proposed Standard,

• protokół ma zastosowanie nie tylko w 

komunikatorach, ale również w innych 

systemach błyskawicznej wymiany informacji,

background image

Mariusz Chmielewski - ISI WAT

27

IRC  (ang. Internet Relay Chat)

IRC  (ang. Internet Relay Chat)

• to jedna ze starszych usług sieciowych umożliwiająca 

rozmowę na tematycznych lub towarzyskich kanałach 

komunikacyjnych, jak również prywatną z inną podłączoną 

aktualnie osobą,

• usługa ta funkcjonuje w architekturze klient-serwer, tj. 

fizycznie składa się z grupy połączonych ze sobą na stałe 

serwerów oraz programów-klientów,

• programy klienckie uruchamiane są przez końcowych 

użytkowników lokalnie – na ich własnych komputerach, lub 

zdalnie, za pośrednictwem usługi SSH lub telnet,

• rozmowy w sieci IRC odbywają się na tzw. kanałach,

• na ekranie użytkownika przewijają się od dołu do góry 

ekranu komunikaty wysyłane przez osoby piszące na 

danym kanale. Komunikaty te pojawiają się zaraz po ich 

wysłaniu, a ich kolejność jest identyczna z kolejnością 

napływania do serwera,

• uczestnicy nie używają zwykle w IRC swoich prawdziwych 

imion i nazwisk, lecz posługują się krótkimi pseudonimami,

background image

Mariusz Chmielewski - ISI WAT

28

Anatomia połączenia HTTP

Anatomia połączenia HTTP

• HTTP zaliczany do protokołów bezstanowych (ang. stateless) z racji 

tego, że nie zachowuje żadnych informacji o poprzednich transakcjach 
z klientem (po zakończeniu transakcji wszystko "przepada")

• Metody HTTP:

– GET - pobranie zasobu wskazanego przez URI, może mieć postać 

warunkową jeśli w nagłówku występują pola warunkowe takie jak "If-
Modified-Since" 

– 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) 

– DELETE - żądanie usunięcia zasobu, włączone 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 

background image

Mariusz Chmielewski - ISI WAT

29

Anatomia połączenia HTTP - Typowe zapytanie 

Anatomia połączenia HTTP - Typowe zapytanie 

HTTP

HTTP

1.

GET / HTTP/1.1 

2.

Host: host.com 

3.

User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.1.7) Gecko/20070914 

Firefox/2.0.0.7 

4.

Accept: 

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=

0.8 

5.

Accept-Language: pl,en-us;q=0.7,en;q=0.3 

6.

Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 

7.

Keep-Alive: 300 

8.

Connection: keep-alive 

9.

CRLF 

1.

(prośba o zwrócenie dokumentu o URI / zgodnie z protokołem HTTP 1.1) 

2.

(wymagany w HTTP 1.1 nagłówek Host służący do rozpoznania hosta, jeśli 

serwer na jednym IP obsługuje kilka VirtualHostów) 

3.

(nazwa aplikacji klienckiej) 

4.

(akceptowane (bądź nieakceptowane dla q=0) przez klienta typy plików) 

5.

(preferowany język strony - nagłówek przydatny przy Language negotiation) 

6.

(preferowane kodowanie znaków, patrz strona kodowa) 

7.

(czas, jaki klient chce zarezerwować do następnego zapytania w przypadku 

połączenia Keep-Alive) 

8.

(chęć nawiązania połączenia stałego Keep-Alive z serwerem HTTP/1.0) 

9.

znak powrotu karetki i nowej linii

background image

Mariusz Chmielewski - ISI WAT

30

Anatomia połączenia HTTP - Typowe zapytanie 

Anatomia połączenia HTTP - Typowe zapytanie 

HTTP

HTTP

1. HTTP/1.1 200 OK 
2. Date: Sun, 11 Jul 2004 12:04:30 GMT
3. Server: Apache/2.0.50 (Unix) DAV/2 
4. Set-Cookie: PSID=d6dd02e9957fb162d2385ca6f2829a73; path=/ 
5. Expires: Thu, 19 Nov 1981 08:52:00 GMT 
6. Cache-Control: no-store, no-cache, must-revalidate 
7. Pragma: no-cache 
8. Keep-Alive: timeout=15, max=100 
9. Connection: Keep-Alive 
10. Transfer-Encoding: chunked 
11. Content-Type: text/html; charset=iso-8859-2 
12. CRLF
13. zawartość dokumentu 

1. (kod odpowiedzi HTTP, w tym wypadku zakceptowanie i zwrócenie zawartości) 
2. (czas serwera)
3. (opis aplikacji serwera) 
4. (nakazanie klientowi zapisania Cookie) 
5. (czas wygaśnięcia zawartości zwróconego dokumentu. Data w przeszłości zabrania 

umieszczenie dokumentu w cache. Jest to stara metoda zastąpiona przez Cache-Control) 

6. (no-store zabrania przechowywania dokumentu na dysku, nawet gdy nie jest to cache. must-

revalidate nakazuje bezwzględnie stosować się do wytycznych i sprawdzić swieżość 

dokumentu za każdym razem) 

7. (informacje dotyczące Cache'owania zawartości. Stara, niestandardowa metoda.) 
8. (ustawienia wariantu Keep-Alive ) 
9. (akceptacja połączenia Keep-Alive dla klientów HTTP/1.0) 
10. (typ kodowania zawartości stosowanej przez serwer) 
11. (typ MIME i strona kodowa zwróconego dokumetu) 
12. znak powrotu karetki i nowej linii

background image

Mariusz Chmielewski - ISI WAT

31

Anatomia połączenia HTTP – kody informacyjne

Anatomia połączenia HTTP – kody informacyjne

kod

opis słowny

znaczenie/zwrócony zasób

100

Continue

Kontynuuj - prośba o dalsze 
wysyłanie zapytania

101

Switching Protocols

Zmiana protokołu

background image

Mariusz Chmielewski - ISI WAT

32

Anatomia połączenia HTTP – Kody powodzenia

Anatomia połączenia HTTP – Kody powodzenia

kod

opis słowny

znaczenie/zwrócony zasób

200

OK

Zawartość żądanego dokumentu 
(najczęściej zwracany nagłówek 
odpowiedzi w komunikacji 

WWW

 

Internetu

)

201

Created

Utworzono - wysłany dokument został 
zapisany na serwerze

202

Accepted

Przyjęto - zapytanie zostało przyjęte do 
obsłużenia, lecz jego zrealizowanie jeszcze 
się nie skończyło

203

Non-Authoritative Information

Informacja nieautorytatywna - zwrócona 
informacja nie odpowiada dokładnie 
odpowiedzi pierwotnego serwera, lecz 
została utworzona z lokalnych bądź 
zewnętrznych kopii

204

No content

Brak zawartości - serwer zrealizował 
zapytanie klienta i nie potrzebuje zwracać 
żadnej treści

205

Reset Content

Przywróć zawartość - serwer zrealizował 
zapytanie i klient powinien przywrócić 
pierwotny wygląd dokumentu

206

Partial Content

Część zawartości - serwer zrealizował tylko 
część zapytania typu GET, odpowiedź musi 
zawierać nagłówek 

Range

 informujący o 

zakresie bajtowym zwróconego elementu

background image

Mariusz Chmielewski - ISI WAT

33

Anatomia połączenia HTTP – Kody 

Anatomia połączenia HTTP – Kody 

przekierowania 

przekierowania 

kod

opis słowny

znaczenie/zwrócony zasób

300

Multiple Choices

Wiele możliwości - istnieje więcej niż jeden sposób 
obsłużenia danego zapytania, serwer może podać adres 
zasobu, który pozwala na wybór jednoznacznego 
zapytania spośród możliwych

301

Moved Permanently

Trwale przeniesiony - żądany zasób zmienił swój 

URI

 

w przyszłości zasób powinien być szukany pod 
wskazanym nowym adresem

302

Found

Znaleziono - żądany zasób jest chwilowo dostępny pod 
innym adresem a przyszłe odwołania do zasobu 
powinny być kierowane pod adres pierwotny

303

See Other

Zobacz inne - odpowiedź na żądanie znajduje się pod 
innym URI i tam klient powinien się skierować. To jest 
właściwy sposób przekierowywania w odpowiedzi na 
żądanie metodą POST.

304

Not Modified

Nie zmieniono - zawartość zasobu nie podległa zmianie 
według warunku przekazanego przez klienta (np. data 
ostatniej wersji zasobu pobranej przez klienta - 

cache

 

przeglądarki)

305

Use Proxy

Użyj serwera proxy - do żądanego zasobu trzeba 
odwołać się przez serwer 

proxy

 podany w nagłówku 

Location

 odpowiedzi

306

Kod nieużywany, aczkolwiek zastrzeżony dla starszych 
wersji protokołu

307

Temporary Redirect

Tymczasowe przekierowanie - żądany zasób znajduje 
się chwilowo pod innym adresem URI, odpowiedź 
powinna zawierać zmieniony adres zasobu, na który 
klient zobowiązany jest się przenieść

background image

Mariusz Chmielewski - ISI WAT

34

Anatomia połączenia HTTP – Kody błędu aplikacji 

Anatomia połączenia HTTP – Kody błędu aplikacji 

klienta 

klienta 

kod

opis słowny

znaczenie/zwrócony zasób

400

Bad Request

Nieprawidłowe zapytanie - żądanie nie może być 
obsłużone przez serwer z powodu błędnej składni 
zapytania

401

Unauthorized

Nieautoryzowany dostęp - żądanie zasobu, który wymaga 
uwierzytelnienia

402

Payment Required

Wymagana opłata - odpowiedź zarezerwowana na 
przyszłość

403

Forbidden

Zabroniony - serwer zrozumiał zapytanie lecz 
konfiguracja bezpieczeństwa zabrania mu zwrócić 
żądany zasób

404

Not Found

Nie znaleziono - serwer nie odnalazł zasobu według 
podanego URI ani niczego co by wskazywało na istnienie 
takiego zasobu w przeszłości

405

Method Not Allowed

Niedozwolona metoda - metoda zawarta w żądaniu nie 
jest dozwolona dla wskazanego zasobu, odpowiedź 
zawiera też listę dozwolonych metod

406

Not Acceptable

Niedozwolone - zażądany zasób nie jest w stanie zwrócić 
odpowiedzi mogącej być obsłużonej przez klienta według 
informacji podanych w zapytaniu

407

Proxy Authentication 
Required

Wymagane uwierzytelnienie do serwera proxy - 
analogicznie do kodu 401, dotyczy dostępu do serwera 
proxy

408

Request Timeout

Koniec czasu oczekiwania na żądanie - klient nie przesłał 
zapytania do serwera w określonym czasie

background image

Mariusz Chmielewski - ISI WAT

35

Anatomia połączenia HTTP – Kody błędu aplikacji 

Anatomia połączenia HTTP – Kody błędu aplikacji 

klienta

klienta

kod

opis słowny

znaczenie/zwrócony zasób

409

Conflict

Konflikt - żądanie nie może być zrealizowane, ponieważ 
występuje konflikt z obecnym statusem zasobu, ten kod 
odpowiedzi jest zwracany tylko w przypadku 
podejrzewania przez serwer, że klient może nie znaleźć 
przyczyny błędu i przesłać prawidłowego zapytania

410

Gone

Zniknął (usunięto) - zażądany zasób nie jest dłużej 
dostępny i nie znany jest jego ewentualny nowy adres 
URI; klient powinien już więcej nie odwoływać się do 
tego zasobu

411

Length required

Wymagana długość - serwer odmawia zrealizowania 
zapytania ze względu na brak nagłówka 

Content-Length

 w 

zapytaniu; klient może powtórzyć zapytanie dodając doń 
poprawny nagłówek długości

412

Precondition Failed

Warunek wstępny nie może być spełniony - serwer nie 
może spełnić przynajmniej jednego z warunków 
zawartych w zapytaniu

413

Request Entity Too Large

Encja zapytania zbyt długa - całkowita długość zapytania 
jest zbyt długa dla serwera

414

Request-URI Too Long

Adres URI zapytania zbyt długi - długość zażądanego 
URI jest większa niż maksymalna oczekiwana przez 
serwer

415

Unsupported Media Type

Nieznany sposób żądania - serwer odmawia przyjęcia 
zapytania, ponieważ jego składnia jest niezrozumiała dla 
serwera

416

Requested Range Not 
Satisfiable

Zakres bajtowy podany w zapytaniu nie do obsłużenia - 
klient podał w zapytaniu zakres, który nie może być 
zastosowany do wskazanego zasobu

417

Expectation Failed

Oczekiwana wartość nie do zwrócenia - oczekiwanie 
podane w nagłówku 

Expect

 żądania nie może być 

spełnione przez serwer lub - jeśli zapytanie realizuje 
serwer proxy - serwer ma dowód, że oczekiwanie nie 
będzie spełnione przez następny w łańcuchu serwer 
realizujący zapytanie

background image

Mariusz Chmielewski - ISI WAT

36

Anatomia połączenia HTTP – Kody błędu 

Anatomia połączenia HTTP – Kody błędu 

wewnętrznego 

wewnętrznego 

kod

opis słowny

znaczenie/zwrócony zasób

500

Internal Server Error

Wewnętrzny błąd serwera - serwer napotkał 
niespodziewane trudności, które uniemożliwiły 
zrealizowanie żądania

501

Not Implemented

Nie zaimplementowano - serwer nie dysponuje 
funkcjonalnością wymaganą w zapytaniu; ten kod jest 
zwracany gdy serwer otrzymał nieznany typ zapytania

502

Bad Gateway

Błąd bramy - serwer - spełniający rolę bramy lub 
proxy - otrzymał niepoprawną odpowiedź od serwera 
nadrzędnego i nie jest w stanie zrealizować żądania 
klienta

503

Service Unavailable

Usługa niedostępna - serwer nie jest w stanie w danej 
chwili zrealizować zapytania klienta ze względu na 
przeciążenie

504

Gateway Timeout

Przekroczony czas bramy - serwer - spełniający rolę 
bramy lub proxy - nie otrzymał w ustalonym czasie 
odpowiedzi od wskazanego serwera HTTP, FTP, LDAP 
itp. lub serwer DNS jest potrzebny do obsłużenia 
zapytania

505

HTTP Version Not 
Supported

Wersja HTTP nie obsługiwana - serwer nie obsługuje 
bądź odmawia obsługi wskazanej przez klienta wersji 
HTTP

background image

Mariusz Chmielewski - ISI WAT

37

Architektury klient-serwer

Architektury klient-serwer

• W 

tym 

podejściu 

system 

jest 

postrzegany 

jako 

zbiór 

usług 

 

oferowanych  klientom,  którzy  z  nich 

korzystają. 

takich 

systemach 

odmiennie traktuje się serwery i klientów

– W  takiej  architekturze  program  użytkowy  jest 

modelowany  jako  zbiór  usług  oferowanych  przez 

serwery  i  zbiór  klientów,  którzy  z  tych  usług 

korzystają.

– Klienci  muszą  znać  dostępne  serwery,  ale  zwykle 

nie muszą wiedzieć o istnieniu innych klientów.

– Klienci i serwery są oddzielnymi procesami.
– Procesy  i  procesory  systemu  nie  muszą  być 

wzajemnie jednoznacznie przyporządkowane.

background image

Mariusz Chmielewski - ISI WAT

38

Architektury klient-serwer

Architektury klient-serwer

• Projektowanie systemu klient-serwer za 

pomocą architektury  warstwowej:

Warstwa 

prezentacji 

dotyczy 

przedstawiania 

informacji  użytkownikowi  i  całego  kontaktu  z 
użytkownikiem.

W  warstwie  przetwarzania  implementuje  się  logikę 
programu użytkowego.

Warstwa zarządzania danymi jest odpowiedzialna za 
wszystkie operacje na bazie danych

Warstwa przetwarzania

Warstwa zarządzania danymi

Warstwa prezentacji

background image

Mariusz Chmielewski - ISI WAT

39

Architektury klient-serwer

Architektury klient-serwer

• Model klienta cienkiego

– W  tym  modelu  całość  przetwarzania  i  zarządzania 

danymi  ma  miejsce  na  serwerze.  Jedynym  zadaniem 

klienta 

jest 

uruchomienie 

oprogramowania 

prezentacyjnego.  Cechą  szczególną  cienkiego  klienta 

jest 

niezależność 

od 

obsługiwanej 

aplikacji 

serwerowej  (jej  zmiana  nie  pociąga  za  sobą 

konieczności  wymiany  oprogramowania  klienta). 

Dodatkowym atutem jest niewielkie zapotrzebowanie 

na moc przetwarzania.

• Model klienta grubego

– W  tym  modelu  serwer  odpowiada  jedynie  za 

zarządzanie  danymi.  Oprogramowanie  u  klienta 

implementuje  logikę  programu  użytkowego  i  kontakt 

z serwerem. Oprogramowanie użytkowe wykonywane 

są bezpośrednio i autonomicznie na stacji, dokonując 

przetwarzania  danych  oraz  wymiany  danych  z 

użytkownikiem i innymi komputerami w sieci.

background image

Mariusz Chmielewski - ISI WAT

40

Architektury klient-serwer

Architektury klient-serwer

Klient

Klient

Klient

Klient

Prezentacja 

  Prezentacja
Przetwarzanie 

  Model
 cienkiego

 

klienta

  Model
 klienta
 grubego

         Serwer

Zarządzanie 
danymi
   Przetwarzanie

 

          Serwer

Zarządzanie 
danymi

background image

Mariusz Chmielewski - ISI WAT

41

Model cienkiego klienta 

Model cienkiego klienta 

• Architektura  dwuwarstwowa  z  cienkim  klientem 

jest  najprostszym  rozwiązaniem,  które  można 

wykorzystać  w  scentralizowanych  systemach 

odziedziczonych 

ewoluujących 

kierunku 

architektur klient-serwer.

– Interfejs  użytkowy  działa  jako  serwer  i  obsługuje 

przetwarzanie użytkowe oraz zarządzanie danymi.

– Model  klienta  cienkiego  może  być  również 

zaimplementowany  tam,  gdzie  klienci  są  raczej 

prostymi 

urządzeniami 

sieciowymi

nie 

komputerami osobistymi albo stacjami roboczymi.

– Na takim urządzeniu sieciowym działa przeglądarka Sieci 

oraz interfejs użytkownika realizowany przez ten system.

– Najważniejsza  wadą  modelu  klienta  cienkiego  jest 

duże obciążenie przetwarzaniem zarówno sieci, jak 

i serwera.

background image

Mariusz Chmielewski - ISI WAT

42

Model klienta cienkiego

Model klienta cienkiego

• Zalety  

– centralne zarządzanie oprogramowaniem 
– niewielkie wymagania dla urządzeń klienckich 
– brak konieczności modyfikacji (rozbudowy) 

urządzeń klienckich mimo wzrostu wymagań 
funkcjonalnych aplikacji 

•  Wady

– ograniczona funkcjonalność, limitowana 

stosowanym protokołem 

– opóźniona interakcja z użytkownikiem związana z 

opóźnieniami sieci 

– duże obciążenia komunikacyjne, możliwe zwyżki 

kosztów komunikacji

background image

Mariusz Chmielewski - ISI WAT

43

Model grubego klienta 

Model grubego klienta 

• Wykorzystuje się dostępną moc obliczeniową klienta 

przekazując  mu  zarówno  przetwarzanie  związane  z 

logiką programu użytkowego, jak i prezentację.

– Serwer pełni rolę serwera transakcji, który zarządza 

transakcjami w bazie danych.

– Znanym  przykładem  architektury  tego  typu  są  systemy 

bankomatów. Bankomat jest tam klientem, a serwerem jest 

komputer główny obsługujący bazę danych kont klientów.

– Wszelkiego  rodzaju  gry  sieciowe  World  of  Warcraft, 

CounterStrike itp. Są również oparte na idei grubego klienta 

ze względu na konieczność wykorzystania skomplikowanych 

modeli oraz algorytmów 3D

– W  modelu  klienta  grubego  przetwarzanie  jest 

bardziej  efektywne  niż  w  wypadku  modelu  klienta 

cienkiego,  zarządzanie  systemem  jest  natomiast 

trudniejsze w tym pierwszym modelu.

background image

Mariusz Chmielewski - ISI WAT

44

Architektura wielowarstwowa

Architektura wielowarstwowa

• W  tej  architekturze  prezentacja,  przetwarzanie 

użytkowe  i  zarządzanie  danymi  są  logicznie 
oddzielonymi procesami.

W  przypadku  architektury  wielowarstwowej  nie  jest 
konieczne fizyczne wyodrębnianie oddzielnych maszyn 
obsługujących logiczne warstwy aplikacji.

Pojedynczy  komputer  serwera  może  obsługiwać 
zarówno  przetwarzanie  użytkowe,  jak  i  zarządzanie 
danymi  programu  użytkowego  jako  dwa  oddzielne 
logicznie serwery.

• Elastyczność  takiej  budowy  zapewnia  również 

możliwość 

budowy 

farmy 

serwerów 

obsługujących  load-balancing  w  ramach  jednej 
logicznej warstwy.

background image

Mariusz Chmielewski - ISI WAT

45

Architektura wielowarstwowa

Architektura wielowarstwowa

background image

Mariusz Chmielewski - ISI WAT

46

Zastosowania różnych architektur

Zastosowania różnych architektur

  

Architektura

Zastosowania

Architektura

Systemy odziedziczone, w których oddzielenie 

przetwarzania użytkowego od zarządzania
dwuwarstwowa

danymi jest niepraktyczne

klient-serwer

Programy użytkowe wykonujące dużo obliczeń, ale w małym 

stopniu (albo wcale)
z klientami cienkimi

zarządzające danymi, np. kompilatory
Programy użytkowe dużo korzystające z danych (przeglądanie i 

zapytywanie), ale 

wykonujące mało (albo wcale) obliczeń użytkowych

Architektura

Programy użytkowe, w których obliczenia są wykonywane u 

klienta przez COTS (kompo-
dwuwarstwowa

nenty z półki), np. Microsoft Exel

klient-serwer

Programy użytkowe wymagające złożonego obliczeniowo 

przetwarzania danych, 
z klientami grubymi

np. przedstawiania graficznego danych
Programy użytkowe ze względnie stabilną funkcjonalnością oferowaną 

użytkownikowi,

stosowane w środowisku ze starannie ustalonym zarządzaniem 

systemem

Architektura

Ogromne programy użytkowe z setkami lub tysiącami 

użytkowników
trójwarstwowa

Programu użytkowe, w których zarówno dane, jak i 

programy są płynne
lub wielowarstwowa     Programy użytkowe, w których integruje się dane z wielu źródeł
klient-serwer

background image

Mariusz Chmielewski - ISI WAT

47

Języki programowania

Języki programowania

• Języki kompilowane:

Przetwarzanie wykonywane przez kompilator dzielone na 

kilka faz:

• Analiza leksykalna – tokenisation - wybranie sekwencji znaków 

i wytworzenie z niej sekwencji żetonów odpowiadających 

elementom języka -liczby, słowa kluczowe, identyfikatory, itd..

• Analiza składniowa – parsing – wybranie sekwencji tokenów i 

budowanie z nich drzewa przetwarzania odpowiadającego 

strukturze gramatycznej programu (drzewa rozbioru)

• Optymalizacja drzewa – wykonywana opcjonalnie
• Generowanie  kodu  maszynowego  –  wybranie  drzewa 

przetwarzania 

wyprodukowanie 

kodu 

maszynowego 

odpowiadającego  instrukcjom  (w  grę  wchodzą  również  kod 

asembassembly language, or some intermediate code, or …)

• Optymalizacja kodu – wykonywana opcjonalnie
• Linkowanie,  ładowanie,  uruchamianie  –  dołączenie  bibliotek 

składowych, realokacja w pamięci

background image

Mariusz Chmielewski - ISI WAT

48

Języki programowania

Języki programowania

• Języki interpretowalne:

Przetwarzanie wykonywane przez 

interpreter dzielone na kilka faz, w 
przeciwieństwie do kompilacji nie 
wymaga generowania kodu 
maszynowego. Zakłada się jednak 
konieczność przed wykonaniem takiego 
programu wykonanie:

– Analizy leksykalnej
– Analizy składniowej
– Emulacji oraz symulacji

background image

Mariusz Chmielewski - ISI WAT

49

Działanie interpretera

Działanie interpretera

• Interpreter w przeciwieństwie do kompilatora, 

tłumaczy kod do wykonywalnego kodu 

maszynowego lub kodu pośredniego, który jest 

następnie zapisywany do pliku w celu 

późniejszego wykonania.

• Wykonanie programu za pomocą interpretera jest 

wolniejsze, a do tego zajmuje więcej zasobów 

systemowych niż wykonanie kodu skompilowanego, 

lecz może zająć relatywnie mniej czasu niż kompilacja 

i uruchomienie. 

• Jest to zwłaszcza ważne przy tworzeniu i testowaniu 

kodu kiedy cykl edycja-interpretacja-debugowanie 

może często być znacznie krótszy niż cykl edycja-

kompilacja-uruchomienie-debugowanie.

• Interpretacja kodu jest wolniejsza niż 

uruchamianie skompilowanego kodu ponieważ 

interpreter musi analizować każde wyrażenie i 

następnie wykonać akcję, a kod skompilowany 

jedynie wykonuje akcję.

background image

Mariusz Chmielewski - ISI WAT

50

Działanie interpretera

Działanie interpretera

• W implementacjach będących w pełni interpreterami 

wykonanie wielokrotne tego samego fragmentu kodu 

wymaga wielokrotnej interpretacji tekstu. 

• Ta analiza nazywana jest "kosztem interpretacji". 

Dostęp do zmiennych jest także wolniejszy w 

interpreterze ze względu na odwzorowanie 

identyfikatorów na miejsca pamięci musi zostać 

dokonane podczas uruchomienia lub pracy a nie 

podczas kompilacji. 

• Języki interpretowalne:

– Bash 

– Maxima 

– Perl 

– PHP 

– Python 

– Ruby 

– Java?


Document Outline