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



Podobne dokumenty
Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Warstwa aplikacji. część 1. Sieci komputerowe. Wykład 8. Marcin Bieńkowski

Programowanie w Internecie

Warstwa aplikacji. część 1. Sieci komputerowe. Wykład 9. Marcin Bieńkowski

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Technologie internetowe

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Języki programowania wysokiego poziomu WWW

Wybrane działy Informatyki Stosowanej

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


TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

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

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

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

World Wide Web? rkijanka

Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

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

Laboratorium nr 4 - Badanie protokołów WWW

Wybrane działy Informatyki Stosowanej

Tomasz Greszata - Koszalin

Zadanie programistyczne nr 3 z Sieci komputerowych

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Aplikacje WWW Wprowadzenie

Sieci komputerowe. Wykład 12: Sieci peer-to-peer. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Instrukcja programu Wireshark (wersja 1.8.3) w zakresie TCP/IP

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Adres IP

TIN Techniki Internetowe zima

Wybrane działy Informatyki Stosowanej

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

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

Sieci komputerowe. Wstęp

FTP co to takiego? FTP File Transfer Protocol (Protokół Przesyłania Plików) RFC 114,959

Sprawozdanie nr 4. Ewa Wojtanowska

Sieciowe systemy informacyjne

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

Bezpieczeństwo WWW. Plan prezentacji. WWW a protokoły TCP/IP; URL. Czym jest WWW?

Protokoły Internetowe

Języki i narzędzia programowania III. Łukasz Kamiński Wykład I

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Technologie Internetu. Protokół HTTP. Aleksander Denisiuk.

The OWASP Foundation Session Management. Sławomir Rozbicki.

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

I.Wojnicki, Tech.Inter.

1. Model klient-serwer

Programowanie Sieciowe 1

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

mgr inż. Michał Paluch

Bazy danych i strony WWW

Protokoły sieciowe - TCP/IP

Laboratorium Sieci Komputerowych - 2

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Aplikacje Internetowe termin dodatkowy

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Przesyłania danych przez protokół TCP/IP

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

OpenLaszlo. OpenLaszlo

Serwer proxy Squid. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Aplikacje WWW. Wykład 4. Protokół HTTP. wykład prowadzi: Maciej Zakrzewicz. Protokół HTTP

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Dokumentacja SMS przez FTP

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

Aplikacje WWW i PHP - opis przedmiotu

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

PSI Protokół HTTP + wstęp do przedmiotu. Kraków, 10 październik 2014 mgr Piotr Rytko Wydział Matematyki i Informatyki UJ

Raport dla strony: Data wygenerowania raport: :37:26 Liczba wykrytych problemów: 34

Stos TCP/IP. Warstwa aplikacji cz.2

Wykład 4. komputerowych Protokoły SSL i TLS główne slajdy. 26 października Igor T. Podolak Instytut Informatyki Uniwersytet Jagielloński

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Instrukcja konfiguracji funkcji skanowania

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25

Usługi sieciowe systemu Linux

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Programowanie współbieżne i rozproszone

Remote Quotation Protocol - opis

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Warstwa aplikacji. część 2. Sieci komputerowe. Wykład 10. Marcin Bieńkowski

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Sieci Komputerowe i Bazy Danych

Transkrypt:

Sieci komputerowe Wykład 8: Warstwa zastosowań: FTP i HTTP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 8 1 / 26

Przypomnienie: Internetowy model warstwowy 5 4 DNS BSD sockets interface UDP FTP TCP HTTP 3 IP ICMP 2 1 Ethernet ARP / RARP Sieci komputerowe (II UWr) Wykład 8 2 / 26

Spis treści 1 FTP 2 HTTP Serwery proxy Sieci komputerowe (II UWr) Wykład 8 3 / 26

FTP FTP Sieci komputerowe (II UWr) Wykład 8 4 / 26

FTP FTP File Transfer Protocol Protokół służacy do przesyłania plików z serwera / na serwer. Serwer działa na porcie 21. Po połaczeniu możemy wydawac polecenia (podobne do uniksowych poleceń). Jeśli przesyłane sa dane (pliki) to otwierane jest dodatkowe połaczenie. prezentacja Sieci komputerowe (II UWr) Wykład 8 5 / 26

Połaczenie dla danych FTP Tryb aktywny Klient FTP wybiera port, informuje o nim serwer, po czym zaczyna na nim nasłuchiwać Serwer FTP łaczy się z tym portem i wysyła tam żadane dane Problem jeśli klient jest za routerem z NAT. Tryb pasywny Klient żada, żeby serwer wybrał port Serwer wybiera port, informuje o nim klienta, zaczyna nasłuchiwać Klient łaczy się z tym portem i pobiera stamtad żadane dane Sieci komputerowe (II UWr) Wykład 8 6 / 26

HTTP HTTP Sieci komputerowe (II UWr) Wykład 8 7 / 26

HTTP HyperText Transfer Protocol Protokół służacy do przesyłania plików (tak jak FTP) Bardzo dojrzały i złożony (choć nieskomplikowany) protokół wersja 1.1 Działa w przestrzeni nazw rozłacznej z FTP Korzysta z portu 80. Sieci komputerowe (II UWr) Wykład 8 8 / 26

HTTP URL (Uniform Resource Locator) (1) URL: Indentyfikuje dany zasób Składa się z 2 części rozdzielonych dwukropkiem schemat: (http, ftp, mailto, file,...) część zależna od rodzaju zasobu Przykłady: http://www.ii.uni.wroc.pl/index.html http://pl.wikipedia.org/wiki/url ftp://ftp.kernel.org/pub/index.html mailto:jan.kowalski@serwer.com Sieci komputerowe (II UWr) Wykład 8 9 / 26

URL (2) HTTP URL dla schematów http, ftp Cześć po dwukropku to: // nazwa DNS serwera opcjonalnie :port / identyfikator zasobu wewnatrz serwera Przykład: http://www.ii.uni.wroc.pl:80/ mbi/dyd/sieciw_13s/ Uwagi: / w identyfikatorze wskazuje na hierarchię. Identyfikator zasobu niekoniecznie jest ścieżka do pliku! Sieci komputerowe (II UWr) Wykład 8 10 / 26

URL (2) HTTP URL dla schematów http, ftp Cześć po dwukropku to: // nazwa DNS serwera opcjonalnie :port / identyfikator zasobu wewnatrz serwera Przykład: http://www.ii.uni.wroc.pl:80/ mbi/dyd/sieciw_13s/ Uwagi: / w identyfikatorze wskazuje na hierarchię. Identyfikator zasobu niekoniecznie jest ścieżka do pliku! Sieci komputerowe (II UWr) Wykład 8 10 / 26

HTTP Żadanie i odpowiedź HTTP Jak to działa: Przegladarka WWW dostaje URL, rozbija go na człony (zakładamy, że schemat = http). Nawiazuje połaczenie z serwerem WWW na porcie 80. Wysyła żadanie HTTP (metoda GET) przykład. Serwer analizuje żadanie, pobiera z dysku odpowiedni plik. Serwer ustawia odpowiedni nagłówek i typ MIME pliku. Serwer wysyła plik przykład. Serwer zamyka połaczenie (lub czeka na następne polecenie) Przegladarka wykonuje akcję w zależności od typu MIME (wyświetla, używa wtyczki, używa zewnętrznej aplikacji). Sieci komputerowe (II UWr) Wykład 8 11 / 26

Połaczenia trwałe HTTP Nawiazywanie połaczenia TCP = duży narzut Zazwyczaj przegladarka pobiera wiele dokumentów naraz (np. strona WWW + obrazki) Standard HTTP/1.1: połaczenie jest domyślnie otwarte Zamknięcie połaczenia, jeśli w żadaniu wyślemy Connection: close prezentacja Sieci komputerowe (II UWr) Wykład 8 12 / 26

Typ MIME HTTP Serwer HTTP dla każdego wysłanego pliku w nagłówku odpowiedzi powinien ustawić poprawnie pole Content-type. Przykłady: text/plain plik tekstowy text/html strona HTML image/jpeg obrazek JPEG video/mpeg film MPEG application/msword dokument DOC application/pdf dokument PDF application/octet-stream ciag bajtów bez interpretacji Sieci komputerowe (II UWr) Wykład 8 13 / 26

Odpowiedzi HTTP HTTP Ważniejsze typy odpowiedzi: 200 OK 301 Moved Permanently 302 Found 304 Not Modified 401 Unauthorized 403 Forbidden 404 Not Found 500 Internal Server Error Sieci komputerowe (II UWr) Wykład 8 14 / 26

HTML HTTP HTTP zaprojektowany został do przesyłania hipertekstu = tekstu z odnośnikami do innych dokumentów. Taka rolę pełnia dokumenty napisane w języku HTML. HTTP + HTML = WWW. Standaryzacja HTML-a zajmuje się organizacja W3C. Przegladarka pobiera stronę HTML i znajdujace sie na niej elementy (obrazki, filmy, elementy osadzone itp.), każdy w osobnej transakcji HTTP (ale być może w jednym połaczeniu TCP). Sieci komputerowe (II UWr) Wykład 8 15 / 26

Wersje HTML HTTP Bardzo pobieżny przeglad HTML 1.0, 2.0, głównie środowiska akademickie, ważna treść HTML 3.0, 3.2, 4.0, ciężar przenosi się na prezentację (wymieszana z treścia) HTML 4.01 czyli wszystko dozwolone + 95% niechlujnie napisanych stron przegladarka musi sobie radzić nie tylko ze standardem ale i z milionem odstępstw od niego. XHTML 1.0, oparty na XML, sztywna struktura, oddzielenie treści i struktury (HTML) od prezentacji (style CSS), sztywny format = łatwiejsze przetwarzanie automatyczne przetwarzanie informacji na stronie, jeden HTML, różne CSS = różne wersje dla różnych odbiorców (PDA, komórki, niewidomi,...) Sieci komputerowe (II UWr) Wykład 8 16 / 26

HTTP Przegladarki (udział w rynku) Obrazek ze strony http://en.wikipedia.org/wiki/comparison_of_web_browsers Sieci komputerowe (II UWr) Wykład 8 17 / 26

HTTP Dynamiczne strony WWW Dynamika po stronie klienta Javascript: prosty obiektowy interpretowany język, kod programu jest wbudowany w HTML. Aplety Javy, aplikacje Flash, Silverlight (wykonanie realizowane przez odpowiednie wtyczki do przegladarki) Dynamika po stronie serwera URI może wskazywać na program, którego wynikiem działania jest HTML (+ ewentualnie nagłówek HTTP) CGI (Common Gateway Interface): standard umożliwiajacy wykonanie dowolnego zewnętrznego programu Mechanizmy zintegrowane z serwerem WWW (PHP, JSP, ASP, mod_perl,...) Formularze, przekazywanie parametrów (metody GET i POST) Cookies = utrzymywanie stanu sesji Sieci komputerowe (II UWr) Wykład 8 18 / 26

HTTP Dynamiczne strony WWW Dynamika po stronie klienta Javascript: prosty obiektowy interpretowany język, kod programu jest wbudowany w HTML. Aplety Javy, aplikacje Flash, Silverlight (wykonanie realizowane przez odpowiednie wtyczki do przegladarki) Dynamika po stronie serwera URI może wskazywać na program, którego wynikiem działania jest HTML (+ ewentualnie nagłówek HTTP) CGI (Common Gateway Interface): standard umożliwiajacy wykonanie dowolnego zewnętrznego programu Mechanizmy zintegrowane z serwerem WWW (PHP, JSP, ASP, mod_perl,...) Formularze, przekazywanie parametrów (metody GET i POST) Cookies = utrzymywanie stanu sesji Sieci komputerowe (II UWr) Wykład 8 18 / 26

Formularze HTTP prezentacja hydeparku Wysyłanie przez GET Po wysłaniu przegladarka pobiera przykładowo stronę http://domena/program?par1=value1&par2=value2 Serwer WWW uruchamia program i przekazuje mu parametry. program coś robi + generuje odpowiedź HTML. Problemy: Widoczny URL. Hasła? Problem z dużymi danymi. Np. chcemy wysłać plik! Wysyłanie przez POST Przegladarka wysyła żadanie POST do serwera HTTP o stronę http://domena/program W treści żadania (nie nagłówku) znajduje się par1=value1&par2=value2 Sieci komputerowe (II UWr) Wykład 8 19 / 26

Formularze HTTP prezentacja hydeparku Wysyłanie przez GET Po wysłaniu przegladarka pobiera przykładowo stronę http://domena/program?par1=value1&par2=value2 Serwer WWW uruchamia program i przekazuje mu parametry. program coś robi + generuje odpowiedź HTML. Problemy: Widoczny URL. Hasła? Problem z dużymi danymi. Np. chcemy wysłać plik! Wysyłanie przez POST Przegladarka wysyła żadanie POST do serwera HTTP o stronę http://domena/program W treści żadania (nie nagłówku) znajduje się par1=value1&par2=value2 Sieci komputerowe (II UWr) Wykład 8 19 / 26

Formularze HTTP prezentacja hydeparku Wysyłanie przez GET Po wysłaniu przegladarka pobiera przykładowo stronę http://domena/program?par1=value1&par2=value2 Serwer WWW uruchamia program i przekazuje mu parametry. program coś robi + generuje odpowiedź HTML. Problemy: Widoczny URL. Hasła? Problem z dużymi danymi. Np. chcemy wysłać plik! Wysyłanie przez POST Przegladarka wysyła żadanie POST do serwera HTTP o stronę http://domena/program W treści żadania (nie nagłówku) znajduje się par1=value1&par2=value2 Sieci komputerowe (II UWr) Wykład 8 19 / 26

HTTP Protokół HTTP jako warstwa transportowa Pisanie poprawnych programów wykorzystujacych TCP nie jest trywialne. A może wykorzystać HTTP do przesyłania danych? Testowego klienta (przegladarkę www) mamy za darmo. Przykład: REST Zautomatyzowany dostęp do niektórych serwisów WWW (przykładowo do: ebay, Amazon, Twitter, Flickr,...) REST (Representational State Transfer) tworzenie usługi sieciowej wykorzystujac metody (GET, PUT, POST, DELETE) protokołu HTTP. REST nie jest standardem, raczej filozofia. Łatwy do zautomatyzowania, czytelny dla człowieka Sieci komputerowe (II UWr) Wykład 8 20 / 26

HTTP Protokół HTTP jako warstwa transportowa Pisanie poprawnych programów wykorzystujacych TCP nie jest trywialne. A może wykorzystać HTTP do przesyłania danych? Testowego klienta (przegladarkę www) mamy za darmo. Przykład: REST Zautomatyzowany dostęp do niektórych serwisów WWW (przykładowo do: ebay, Amazon, Twitter, Flickr,...) REST (Representational State Transfer) tworzenie usługi sieciowej wykorzystujac metody (GET, PUT, POST, DELETE) protokołu HTTP. REST nie jest standardem, raczej filozofia. Łatwy do zautomatyzowania, czytelny dla człowieka Sieci komputerowe (II UWr) Wykład 8 20 / 26

HTTP Serwery proxy Serwery proxy Sieci komputerowe (II UWr) Wykład 8 21 / 26

HTTP Serwery proxy Zamiast łaczyć się bezpośrednio z serwerem WWW, przegladarka może łaczyć się z tzw. serwerem proxy. Po co? Ograniczanie ruchu do/z zewnętrznych stron WWW przechowywanie zawartości stron w pamięci proxy. Kontrolowanie dostępu do zasobów WWW. Uwaga: serwer proxy zazwyczaj oznacza serwer proxy WWW, ale można wyobrazić sobie proxy dla wielu innych usług (ARP, DNS, DHCP) Sieci komputerowe (II UWr) Wykład 8 22 / 26

HTTP Serwery proxy Zamiast łaczyć się bezpośrednio z serwerem WWW, przegladarka może łaczyć się z tzw. serwerem proxy. Po co? Ograniczanie ruchu do/z zewnętrznych stron WWW przechowywanie zawartości stron w pamięci proxy. Kontrolowanie dostępu do zasobów WWW. Uwaga: serwer proxy zazwyczaj oznacza serwer proxy WWW, ale można wyobrazić sobie proxy dla wielu innych usług (ARP, DNS, DHCP) Sieci komputerowe (II UWr) Wykład 8 22 / 26

Serwer proxy HTTP Serwery proxy Działanie: Oczekuje na porcie 8080 lub 3128 (zazwyczaj). Jeśli w pamięci podręcznej (cache) nie ma żadanej strony lub jest nieaktualna, to: proxy łaczy się z zadana strona, zapamiętuje odpowiedź w pamięci podręcznej (cache). Proxy zwraca odpowiedź klientowi. Sieci komputerowe (II UWr) Wykład 8 23 / 26

Serwer proxy HTTP Serwery proxy Działanie: Oczekuje na porcie 8080 lub 3128 (zazwyczaj). Jeśli w pamięci podręcznej (cache) nie ma żadanej strony lub jest nieaktualna, to: proxy łaczy się z zadana strona, zapamiętuje odpowiedź w pamięci podręcznej (cache). Proxy zwraca odpowiedź klientowi. Sieci komputerowe (II UWr) Wykład 8 23 / 26

HTTP Serwery proxy Aktualność pamięci podręcznej Jak serwer proxy decyduje, czy strona w cache jest nadal aktualna: Serwer WWW ustawia pole Expires: w nagłówku odpowiedzi po tej dacie serwer proxy wyrzuca stronę z cache Serwer WWW może ustawić pole Pragma: no-cache lub/i Cache-Control: no-cache strona w ogóle nie będzie zapamiętywana na serwerze proxy Klient WWW może ustawić powyższe pole zawartość cache serwera zostanie pominięta W pozostałych przypadkach heurystyki oparte np. na polu Last-modified: Sieci komputerowe (II UWr) Wykład 8 24 / 26

HTTP Anonimowe serwery proxy Serwery proxy Zwykły serwer proxy dodaje do naszego żadania HTTP dodatkowe pola w nagłówku, m.in. X-Forwarded-For: (nasz adres IP) Via: (adres IP proxy) prezentacja. (Istnieja tzw. anonimowe serwery proxy, które nie dodaja tych nagłówków.) Sieci komputerowe (II UWr) Wykład 8 25 / 26

Lektura dodatkowa HTTP Serwery proxy Kurose, Ross: rozdział 2.2 2.3 Tanenbaum: rozdział 7.3 Sieci komputerowe (II UWr) Wykład 8 26 / 26