lecture 11 http ftp

background image

Wykład 11: “Warstwa

Wykład 11: “Warstwa

sesji – usługi WWW i

sesji – usługi WWW i

FTP”

FTP”

Mikołaj Leszczuk

background image

2

Literatura

• “Hypertext Transfer Protocol –

HTTP/1.1”,
http://www.ietf.org/rfc/rfc2616.txt

• “FILE TRANSFER PROTOCOL

(FTP)”,
http://www.ietf.org/rfc/rfc0959.txt

• „Wikipedia”,

http://www.wikipedia.pl/

background image

3

HTTP (1/4)

HTTP (

ang.

Hypertext Transfer

Protocol) to

protokół

sieci

WWW

(World Wide Web).

• Jest on używany przy każdej

transakcji.

background image

4

HTTP (2/4)

• Właśnie 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 informacji -
natomiast

protokół

HTTP właśnie

to umożliwia.

background image

5

HTTP (3/4)

• Protokół HTTP jest tak

użyteczny, ponieważ
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.

background image

6

HTTP (4/4)

• Jest zaliczany do protokołów

stateless (bezstanowy), z racji

tego, że nie zachowuje żadnych

informacji o poprzednich

transakcjach z klientem, po

zakończeniu transakcji wszystko

„przepada” – z tego powodu tak

bardzo spopularyzowały się

cookies

.

• HTTP korzysta z portu nr 80.

background image

7

Protokół HTTP (1/3)

• Protokół warstwy:

– Sesji (V w modelu ISO/OSI).
– Aplikacji (IV w modelu internetowym –

TCP/IP).

• Używany dla celów prezentacji

rozproszonych dokumentów

hipermedialnych.

• Możliwość rozszerzania o:

– Nowe metody zapytań.
– Kody błędów.
– Nagłówki.

background image

8

Protokół HTTP (2/3)

• Może być użyty do wielu innych

zastosowań prócz stron WWW, np:

– Serwery nazw.
– Rozproszone systemy zarządzania

obiektami.

• Cechą charakterystyczną HTTP

jest uniezależnienie systemów
używających protokołu od typu
przesyłanych danych.

background image

9

Protokół HTTP (3/3)

• HTTP jest używany w systemie

globalnym systemie
informacyjnym WWW (World-
Wide Web) od roku 1991.

• Najpopularniejszą wersją

protokołu HTTP jest wersja
“HTTP/1.1” wraz z
rozszerzeniami w dokumencie
RFC 2068.

background image

10

Wprowadzenie do HTTP

(1/6)

• Pierwszą wersją HTTP była wersja

“HTTP/0.9” – prosty protokół dla
transferu danych w Internecie.

• Następnie zdefiniowano protokół

“HTTP/1.0” (w dokumencie RFC 1945) –
wersja poprawiona pozwalająca na
przesyłanie wiadomości w formacie
MIME (Multipurpose Internet Mail
Extensions
) zawierającym m.in.
metainformacje o przesyłanych
danych.

background image

11

Wprowadzenie do HTTP

(2/6)

• Jednakże, “HTTP/1.0” nie brał

pod uwagę efektu istnienia:

– Hierarchicznych proxy.
– Buforowania.
– Konieczności utrzymywania

stałych połączeń.

– Hostów wirtualnych.

background image

12

Wprowadzenie do HTTP

(3/6)

• Dodatkowo, mnożenie się

aplikacji, ze źle (niekompletnie)
zaimplementowanym protokołem
"HTTP/1.0" spowodowało
konieczność zmiany wersji
protokołu w przypadku
komunikacji między dwoma
aplikacjami, jeśli chcą one poznać
swoje prawdziwe możliwości.

background image

13

Wprowadzenie do HTTP

(4/6)

• Zwykle w systemach informacyjnych

potrzebna jest większa funkcjonalność niż
zwykłe pobieranie, dlatego HTTP umożliwia
bardziej zaawansowane operacje.

Uniform Resource Identifier (URI):

Location (URL).
Name (URN).

• Pozwala to na identyfikację obiektów.
• Komunikaty HTTP są przesyłane w sposób

podobny do poczty elektronicznej jako
MIME.

background image

14

Wprowadzenie do HTTP

(5/6)

• HTTP może być też użyty jako

uniwersalny protokół dla komunikacji
pomiędzy agentami użytkowników a
serwerami proxy innych systemów
internetowych takich jak:

– SMTP,
– NNTP,
– FTP,
– Gopher,
– WAIS.

background image

15

Wprowadzenie do HTTP

(6/6)

• W ten sposób, przy użyciu

HTTP, możliwy jest dostęp do
zasobów dla różnych aplikacji.

background image

16

Typowe zapytanie HTTP

(1/4)

1. GET / HTTP/1.1 (prośba o

zwrócenie dokumentu o

URI

/

zgodnie z protokołem HTTP
1.1)

2. Host: host.com (wymagany

w HTTP 1.1 nagłówek Host
służący do wstecznego DNS)

background image

17

Typowe zapytanie HTTP

(2/4)

3.

User-Agent: Mozilla/5.0

(X11; U; Linux i686; pl-PL;

rv:1.6) Gecko/20040122

(nazwa

aplikacji klienckiej

)

4.

Accept:

text/xml,application/xml

,

application/xhtml+xml

,

text/

html

;q=0.9,text/plain;q=0.8

(akceptowane przez klienta

typy plików)

background image

18

Typowe zapytanie HTTP

(3/4)

5. Accept-Language: pl,en-

us;q=0.7,en;q=0.3
(preferowany język strony –
nagłówek przydatny przy

Language negotation

)

6. Accept-Charset: ISO-8859-

2,utf-8;q=0.7,*;q=0.7
(preferowana

strona kodowa

)

background image

19

Typowe zapytanie HTTP

(4/4)

7. Keep-Alive: 300 (czas, jaki

klient chce zarezerwować do
następnego zapytania w
przypadku połączenia Keep-
Alive
)

8. Connection: keep-alive

(chęć nawiązania połączenia
stałego - Keep-Alive)

background image

20

Odpowiedź serwera WWW

(1/4)

1.

HTTP/1.1 200 OK (

kod odpowiedzi HTTP

, w tym

wypadku zaakceptowanie i
zwrócenie zawartości)

2.

Date: Sun, 11 Jul 2004
12:04:30

GMT

(czas serwera)

3.

Server:

Apache

/2.0.50

(Unix)

DAV

/2 (opis aplikacji

serwera)

background image

21

Odpowiedź serwera WWW

(2/4)

4.

Set-Cookie:
PSID=d6dd02e9957fb162d2385
ca6f2829a73; path=/
(nakazanie
klientowi zapisania

Cookie

)

5.

Expires: Thu, 19 Nov 1981
08:52:00

GMT

(czas wygaśnięcia

zawartości zwróconego dokumentu)

6.

Cache-Control: no-store, no-
cache, must-revalidate, post-
check=0, pre-check=0

background image

22

Odpowiedź serwera WWW

(3/4)

7. Pragma: no-cache

(informacje dotyczące

Cache

-

owania zawartości)

8. Keep-Alive: timeout=15,

max=100

9. Connection: Keep-Alive

(akceptacja połączenia Keep-
Alive
- tunelowanego)

background image

23

Odpowiedź serwera WWW

(4/4)

10.Transfer-Encoding: chunked

(typ kompresji zawartości

stosowanej przez serwer)

11.Content-Type: text/html;

charset=iso-8859-2 (

typ MIME

i

strona kodowa

zwróconego dokumentu)

12.(pusta linia)
13.tutaj zawartość dokumentu

background image

24

Kod odpowiedzi HTTP

Kod odpowiedzi HTTP -

numeryczna dana wysyłana przez
serwer HTTP do aplikacji klienta.
Informuje o sposobie realizacji (bądź
jej braku) zapytania klienckiego.

• Znajduje się na początku

odpowiedzi, tuż za wersją protokołu
HTTP i przed słownym opisem kodu
odpowiedzi. Np.

• HTTP/1.1 400 Bad Request.

background image

25

Kody odpowiedzi protokołu

Informacyjne

kod słowny

opis

znaczenie/zwrócony

zasób

10

0

Continu

e

Kontynuuj – prośba o

dalsze wysyłanie

zapytania

10

1

Switchin

g

Protocol

s

Zmiana protokołu

background image

26

Kody odpowiedzi protokołu

Powodzenia (1/2)

20

0

OK

Zawartość żądanego dokumentu

(najczęściej zwracany nagłówek
odpowiedzi w komunikacji WWW
Internetu)

20
1

Created

Utworzono – wysłany dokument
został zapisany na serwerze

20
2

Accepted

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

skończyło

20

3

Non-

Authoritati
ve
Informatio
n

Informacja nieautorytarna –

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

background image

27

Kody odpowiedzi protokołu

Powodzenia (2/2)

20

4

No

content

Brak zawartości — serwer zrealizował

zapytanie klienta i nie potrzebuje
zwracać żadnej treści

20
5

Reset
Content

Przywróć zawartość – serwer
zrealizował zapytanie i klient powinien

przywrócić pierwotny wygląd
dokumentu

20
6

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

28

Kody odpowiedzi protokołu

Przekierowania (1/2)

300

Multiply

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

Permanentl

y

Trwale przeniesiony – żądany zasób

zmienił swój URI i w przyszłości zasób

powinien być szukany pod wskazanym

nowym adresem

302

Found

Znaleziono – żądany zasób jest

chwiliwo 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ć

background image

29

Kody odpowiedzi protokołu

Przekierowania (2/2)

30

4

Not

Modified

Nie zmieniono – zawartość zasobu nie

pogległa zmianie według warunku

przekazanego przez klienta (np. data

ostatniej wersji zasobu pobranej przez

klienta – Cache przeglądarki)

30

5

Use

Proxy

Użyj serwera proxy – do żądanego zasobu

trzeba odwołać się przez serwer proxy

podany w nagłówku Location odpowiedzi

30

6

Kod nieużywany, acz zastrzeżony dla

starszych wersji protokołu

30

7

Temporar

y

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 przenieść się

background image

30

Kody odpowiedzi protokołu

Błędu aplikacji klienta (1/3)

40

0

Bad

Request

Nieprawidłowe zapytanie – żądanie nie może

być obsłużone przez serwer z powodu błędnej

składni zapytania

40

1

Unauthorize

d

Nieautoryzowany dostęp – żądanie zasobu,

który wymaga uwierzytelnienia

40

2

Payment

Required

Wymagana opłata — odpowiedź zarezerwowana

na przyszłość

40

3

Forbidden

Zabroniony – serwer zrozumiał zapytanie lecz

konfiguracja bezpieczeństwa zabrania mu

zwrócić żądany zasób

40

4

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

40

5

Method Not

Allowed

Niedozwolona metoda – metoda zawarta w

żądaniu nie jest dozwolona dla wskazanego

zasobu, odpowiedź zawiera też listę

dozwolonych metod

background image

31

Kody odpowiedzi protokołu

Błędu aplikacji klienta (2/3)

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

32

Kody odpowiedzi protokołu

Błędu aplikacji klienta (2/3)

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

background image

33

Kody odpowiedzi protokołu

Błędu aplikacji klienta (3/3)

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

34

Kody odpowiedzi protokołu

Błędu wewnętrznego

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 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 potrzeby 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

35

Usługa WWW

Standardowo dostępna na porcie

80 TCP

Najpopularniejsze realizacje

serwerów:

Apache

Internet Information Server

Netscape Enterprise Server

background image

36

World Wide Web (1/5)

World Wide Web (w skrócie

określany jako WWW lub Web) jest

hipertekstowym

,

multimedialnym

,

sieciowym (

TCP

/

IP

) systemem

informacyjnym opartym na

publicznie dostępnych, otwartych

standardach

IETF

,

W3C

i

ISO

.

• Pierwotnym i w chwili obecnej

nadal podstawowym zadaniem

WWW jest publikowanie informacji.

background image

37

World Wide Web (2/5)

• Aby uzyskać dostęp do tak

udostępnianej informacji, trzeba

posłużyć się

programem komputerowym

, który

nazywamy

przeglądarką internetową

.

• Przeglądarka łączy się z

serwerem internetowym

, skąd pobiera

pewien zbiór informacji określany jako

strona internetowa

.

• Strona internetowa może zostać

wyświetlona, zapisana w lokalnym

systemie plików czy wydrukowana.

background image

38

World Wide Web (3/5)

• Zawartość strony internetowej jest

hipertekstem

, znaczy to, że

użytkownik oglądając stronę
internetową może podążać za

hiperłączami

, które przenoszą go do

innych stron internetowych w ramach
tego samego serwera internetowego
lub innych dostępnych w ramach sieci.

• Często korzystanie z WWW nazywa się

"surfowaniem po sieci").

background image

39

World Wide Web (4/5)

• World Wide Web został

zapoczątkowany na początku
lat dziewięćdziesiątych w

CERN

jako system dostępu do
danych, informacji (w tym
graficznych) w
heterogenicznym środowisku
dużej organizacji naukowej.

background image

40

World Wide Web (5/5)

Tim Berners-Lee

, nazywany twórcą

WWW, zbudował prototyp systemu,
który później został przekształcony
w to czym WWW jest dzisiaj.

• Szybko przekroczył (podobnie jak

internet

) granice środowiska

naukowego, a po kilku latach został
zaadaptowany na całym świecie.

background image

41

Skrypty CGI

• Programy wykonywane na

serwerze WWW

• Argumenty:

– Wejście:

• Parametry
• Plik

– Wyjście:

• Plik testowy
• Dokument w języku HTML
• Plik binarny

background image

42

FTP (1/3)

FTP czyli File Transfer Protocol (

Protokół Transmisji

Plików) jest

protokołem typu

klient-serwer

, który

umożliwia przesyłanie

plików

z i na

serwer

poprzez sieć TCP/IP.

FTP jest standardem określonym przez

IETF

w

RFC 959

(http://www.faqs.org/rfcs/rfc959.html).

• FTP jest protokołem 8-bitowym, dlatego

nie jest potrzebne dalsze przetwarzanie

informacji, tak jak ma to miejsce w

standardach

MIME

i uuencode.

background image

43

FTP (2/3)

• FTP wykorzystuje do

komunikacji 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.

background image

44

FTP (3/3)

• 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 nr 20 do przesyłu
danych i 21 dla poleceń. Natomiast
jeżeli pracuje w trybie pasywnym
wykorzystuje porty nr 21 do poleceń i
port o numerze > 1024 do transmisji
danych.

background image

45

Wprowadzenie do FTP (1/2)

• Celami FTP są:

– Promować udostępnianie plików

(programów komputerowych i/lub danych).

– Przekonywać do pośredniego lub

bezpośredniego (z zastosowaniem
programów) używania zdalnych
komputerów.

– Oddzielać użytkownika od problemów z

różnymi systemami zapisu plików na
różnych serwerach.

– Przesyłać dane w sposób niezawodny i

efektywny.

background image

46

Wprowadzenie do FTP (2/2)

• Sam protokół FTP, może być

używany bezpośrednio przez
użytkownika, lecz stworzony
został przede wszystkim do
użycia przez programy.

background image

47

Model FTP

-------------
|/---------\|
|| User || --------
||Interface|<--->| User |
|\----^----/| --------
---------- | | |
|/------\| FTP Commands |/----V----\|
||Server|<---------------->| User ||
|| PI || FTP Replies || PI ||
|\--^---/| |\----^----/|
| | | | | |
-------- |/--V---\| Data |/----V----\| --------
| File |<--->|Server|<---------------->| User |<--->| File |
|System| || DTP || Connection || DTP || |System|
-------- |\------/| |\---------/| --------
---------- -------------

Server-FTP USER-FTP

NOTES: 1. The data connection may be used in either direction.
2. The data connection need not exist all of the time.

background image

48

Model FTP (1/2)

• Interpreter protokołu użytkownika inicjuje

połączenie sterujące.

• Połączenie sterujące wygląda jak sesja

TELNET.

background image

49

Model FTP (2/2)

• W momencie inicjacji połączenia przez

użytkownika, Interpreter protokołu użytkownika
generuje standardowe komendy FTP i wysyła je
połączeniem sterującym do procesu serwera.

• Użytkownik może jednak ustanowić bezpośrednie

połączenie sterujące do serwera FTP, np: z
terminala tekstowego, a następnie niezależnie
generować standardowe komendy FTP , omijając
proces FTP użytkownika.

• Interpreter protokołu serwera, w wyniku

przetwarzania komend, wysyła standardowe
odpowiedzi do interpretera protokołu użytkownika
korzystając z połączenia sterującego.

background image

50

Usługa FTP (1/2)

• Oparta na protokole FTP (File

Transfer Protocol)

• Standardowo dostępna na

portach TCP:

– 21 – kanał sterowania
– >1024, przypadkowych – kanał

danych

background image

51

Usługa FTP (2/2)

• Najpopularniejsze realizacje

serwerów:

– GNU ftpd
– Internet Information Server
– Netscape Enterprise Server


Document Outline


Wyszukiwarka

Podobne podstrony:
lecture 11
lecture 11 attribute charts id Nieznany
Lecture 11
Lecture 11 12 C
lecture 11
Lecture 11, Epping, Dług publiczny, rozszerzony
Summary of lectures 11 12
Lecture 11 Operating systems
Wyjaśnij pojęcie Protokoły warstwy aplikacji HTTP, FTP
Wyjaśnij pojęcia Protokoły warstwy aplikacji http, FTP
Lecture 11 Implementing a PMS Change Mgmt
http, www czytelniaonline pl secure pdf htm comm=PiP pdf 1994 11 pip 1994 11 045
FTP TFTP HTTP SMTP POP
BIO110 lecture 33 (11 10 10)
http, www czytelniaonline pl secure pdf htm comm=PPH pdf 2005 11 pph 2005 11 051
http, www czytelniaonline pl secure pdf htm comm=PiP pdf 1994 11 pip 1994 11 045
http, liberalis pl 2007 11 21 stefan molyneux spoleczenstwo bezpanstwowe badanie mozliwosci print

więcej podobnych podstron