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



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

Protokół FTP Protokół FTP

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

Języki programowania wysokiego poziomu WWW

Programowanie w Internecie

Plan wykładu. 1. Poczta elektroniczna protokół SMTP, protokół POP, protokół IMAP. 2. Zdalna praca - Telnet. 3. Transfer plików usługa FTP.

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

Programowanie w Internecie

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


HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Technologie internetowe

I.Wojnicki, Tech.Inter.

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

Aplikacje webowe. mgr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji

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

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

I.Wojnicki, Tech.Inter.

Wybrane działy Informatyki Stosowanej

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

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

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

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Protokoły Internetowe

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

1. Model klient-serwer

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

PHP. Tematyka wykładów: Język PHP PHP i bazy danych Rozszerzenia PHP

OpenLaszlo. OpenLaszlo

Czym jest AJAX. AJAX wprowadzenie. Obiekt XMLHttpRequest (XHR) Niezbędne narzędzia. Standardowy XHR. XHR z obsługą baz danych

Instrukcja obsługi serwera FTP v

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

I.Wojnicki, PHP. PHP PHP Hypertext Preprocessor. Igor Wojnicki. Ktedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie.

I.Wojnicki, Tech.Inter.

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

Wybrane działy Informatyki Stosowanej

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Projekt e-deklaracje 2

Zaawansowane aplikacje internetowe

Aplikacje internetowe - laboratorium

Protokoły warstwy aplikacji i ich zastosowanie

TECHNOLOGIE SIECI WEB

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

I.Wojnicki, Tech.Inter.

Programowanie Sieciowe 2 Protokoły komunikacyjne: FTP

Laboratorium 1 Wprowadzenie do PHP

Sieciowe systemy informacyjne

I.Wojnicki, JiTW. Języki i Technologie Webowe. Protokół HTTP, Przegladarki. Igor Wojnicki

Programowanie Komponentowe WebAPI

HTTP, CGI, Perl. HTTP HyperText Transfer Protocol. CGI Common Gateway Interface. Perl Practical Extraction and Report Language

Linux -- u mnie działa!

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

Technologie Internetu. Protokół HTTP. Aleksander Denisiuk.

Serwery WWW. Konfiguracja. Zadania serwera. NCSA httpd 1.5

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

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Internetowe bazy danych

Systemy internetowe Wykład 3 PHP

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

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 2 Seria: Teleinformatyka 2013

Aplikacje WWW Wprowadzenie

XML-RPC: Zdalne wykonywanie procedur

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

Aplikacje WWW - laboratorium

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

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Wybrane działy Informatyki Stosowanej

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Wykład 03 JavaScript. Michał Drabik

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

Zajęcia 4 - Wprowadzenie do Javascript

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Architektura aplikacji sieciowych. Architektura klient-serwer

Specyfikacja techniczna. mprofi Interfejs API

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Podstawy programowania w języku JavaScript

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

Hipertekst w sieci: WWW

Wprowadzenie do Internetu Zajęcia 5

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Wprowadzenie do programowania www

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

Usługi sieciowe systemu Linux

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

Wybrane działy Informatyki Stosowanej

The OWASP Foundation Session Management. Sławomir Rozbicki.

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

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

Wybrane działy Informatyki Stosowanej

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

mgr inż. Michał Paluch

Transkrypt:

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

Protokół FTP Protokół FTP (File Transfer Protocol) [RFC 959] umożliwia przesyłanie plików tekstowych i binarnych. Serwer FTP działa na porcie 21. [serwer] 220 serwer.adres FTP server ready. [klient] [serwer] [klient] [serwer] [klient] USER użytkownik<crlf> 331 Password required for użytkowinik. PASS hasło<crlf> 230 User użytkownik logged in. SYST<CRLF> [serwer] 215 UNIX Type: L8 Version: Compaq Tru64 UNIX V5.0 2

Protokół FTP [klient] [serwer] [klient] PASV<CRLF> 227 Entering Passive Mode (ip1,ip2,ip3,ip4,port1,port2) LIST<CRLF> [serwer] 150 Opening ASCII mode for data connection for /bin/ls (0.0.0.0,0) dane są przesyłane na innym porcie. Port 21 będzie przeznaczony tylko dla komunikatów kontrolnych. W celu odebrania danych należy otworzyć nowe połączenie z adresem: ip1.ip2.ip3.ip4:port1*256+port2. [serwer] 226 Transfer complete. 3

Protokół FTP [klient] [serwer] [klient] [serwer] [serwer] [klient] [serwer] [serwer] PASV<CRLF> 227 Entering Passive Mode (ip1,ip2,ip3,ip4,port1,port2) RETR jakis.plik<crlf> 150 Opening BINARY mode data connection for jakis.plik (0.0.0.0,0)... 226 Transfer complete. QUIT<CRLF> Goodbye. Zakończenie połączenia. 4

Serwery FTP proftpd vsftpd (http://www.proftpd.org) (http://vsftpd.beasts.org) Serwer ftp może korzystać z lokalnej bazy użytkowników (konta na serwerze) lub też autoryzować użytkownika poprzez inny niezależny mechanizm. Dostęp do ftp bez powłoki: modyfikacja /etc/passwd: ciesla:x:1002:21::/var/ftp/ciesla:/bin/false Autoryzacja lokalna przez PAM, plik /etc/pam.d/ftp #%PAM-1.0 auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib/security/pam_unix.so shadow nullok #auth required /lib/security/pam_shells.so account required /lib/security/pam_unix.so session required /lib/security/pam_unix.so. 5

Usługi WWW WWW (World Wide Web) jest najpopularniejszym sposobem udostępniania informacji w sieci. Umożliwia umieszczenie w jednym dokumencie między innymi tekstu, grafiki, animacji oraz dźwięku. Standard WWW został opracowany w 1991 roku. Dwa lata później powstała pierwsza graficzna przeglądarka stron WWW Mosaic. Strony są zapisane w języku HTML (HyperText Markup Language), a do ich przesyłania służy protokół HTTP (HyperText Transfer Protocol). WWW opiera się na modelu klient serwer. Strony są identyfikowane za pomocą adresów URL. Domyślny port dla usługi HTTP to 80. 6

Protokół HTTP Protokół HTTP [RFC 2616] przykładowe połączenie: [klient] [serwer] HEAD / HTTP/1.1 <CRLF> Host: www.if.uj.edu.pl <CRLF> <CRLF> HTTP/1.1 200 OK Date: Sun, 10 Oct 2004 19:54:37 GMT Server: Apache/1.3.27 (Unix) mod_jk/1.2.0 PHP/4.3.2 Last-Modified: Thu, 23 Sep 2004 07:02:33 GMT ETag: "1357a3-294c-41527509" Accept-Ranges: bytes Content-Length: 10572 Content-Type: text/html [serwer]zamknięcie połączenia. Komenda HEAD zwraca ogólne informacje na temat wskazanego dokumentu. 7

Protokół HTTP W celu uzyskania treści wskazanego dokumentu należy użyć komendy GET lub POST. Za pomocą tych komend można również przekazać argumenty do serwera WWW. Schemat wywołania: [klient] GET /dokument?arg1=wart1&arg2=wart2 HTTP/1.1<CRLF> Host: www.if.uj.edu.pl<crlf><crlf> lub [klient] POST /dokument HTTP/1.1<CRLF> Host: www.if.uj.edu.pl<crlf> Content-Type: application/x-www-form-urlencoded<crlf> Content-Length: 21<CRLF><CRLF> arg1=wart1&arg2=wart2<crlf> 8

Protokół HTTP Pozostałe komendy: OPTIONS wykaz komend dostępnych dla wskazanego dokumentu (serwera), PUT wstawia dokument pod określony adres URL, DELETE kasuje dokument pod określonym adresem, TRACE zwraca informacje o poprawności zapytania. Nie zwraca, zawartości dokumentu, CONNECT zarezerwowana na potrzeby transmisji kodowanej (SSL). 9

Popularne serwery WWW Apache http://httpd.apache.org darmowy serwer z udostępnionym kodem źródłowym (licencja GPL). Posiada liczne moduły umożliwiające współpracę z innymi systemami (języki programowania, bazy danych). Może działać pod kontrolą różnych systemów operacyjnych, IIS (Internet Information Services) http://www.microsoft.com/iis komercyjny, wspiera technologię ASP (Active Server Pages). Współpracuje głównie z językami programowania firmy Microsoft. Działa w środowisku MS Windows, Tomcat http://jakarta.apache.org/tomcat darmowy serwer referencyjny dla technologii JSP (Java Server Pages), kontener servletów. Napisany w Javie. 10

Konfiguracja Apache'a Konfiguracja startowa programu serwera: /etc/conf.d/apache2: APACHE2_OPTS="-D DEFAULT_VHOST -D PHP5" Konfiguracja pracy serwera: /etc/apache2/httpd.conf: <VirtualHost *:80> ServerAdmin webmaster@adres.com DocumentRoot /var/www/docs/katalog.dla.adres.com ServerName adres.com ErrorLog /var/log/apache2/adres.com-error_log CustomLog /var/log/apache2/adres.com-access_log common </VirtualHost> 11

Serwer WWW model request-response przeglądarka WWW (JavaScript) żądanie danych strona HTML Oprogramowanie serwera WWW Moduły (np. CGI, PHP, Servlety, JSP, ASP, Perl, Python) Inne systemy System operacyjny Bazy danych 12

Przekazywanie argumentów <html> <body> Podaj proszę swoje imie: <form name="formularz" method="get" action="skrypt.php"> Imie: <input type="text" name="imie" /> <input type="submit" /> </form> </body> </html> http://empetrum.if.uj.edu.pl/skrypt.php?imie=ala 13

Przekazywanie argumentów Skrypt php po stronie serwera: <?php $s = $_GET['imie']?> <html> <body> Witaj <?php echo $s?> </body> <html> 14

Przekazywanie argumentów Przeglądarka i serwer mogą wymieniać się danymi: GET argumenty wywołania skryptu/strony. Dane z przeglądarki do serwera. Przykład: http://phpbb3.pl/viewtopic.php?f=5&t=1018 POST Analogiczne, z tym że argumenty nie są przesyłane poprzez adres URL. COOKIE argumenty przesłane od serwera do przeglądarki w celu późniejszej identyfikacji klienta. SESSION argumenty związane z klientem trzymane po stronie serwera oznaczone identyfikatorem sesji przekazywanym pomiędzy serwerem i klientem. 15

Cookies (ciasteczka) Serwer przeglądarka: HTTP/1.1 302 Found Date: Sat, 25 Oct 2008 07:48:15 GMT Server: Apache... Set-Cookie: imie=michal; expires=sat, 01 Nov 2008 07:48:15 GMT; path=/; domain=.uj.pl; HttpOnly Set-Cookie: nazwisko=ciesla; path=/; domain=.uj.pl; HttpOnly Location: http://www.uj.pl/index.php?st=0... Przeglądarka serwer: GET /index.php?st=0& HTTP/1.1... Cookie: imie=michal; nazwisko=ciesla;... 16

Sesje Przekazywanie sesji (identyfikatora sesji) jest możliwe na dwa sposoby: 1. Poprzez Cookie: HTTP/1.1 302 Found Date: Sat, 25 Oct 2008 07:48:15 GMT Server: Apache... Set-Cookie: s=94a576da1f8e5036a0c44fce6b1e1044; expires=sat, 01 Nov 2008 07:48:15 GMT; path=/; domain=.uj.pl; HttpOnly... 2. Poprzez dodatkowy argument GET dodanie do każdego możliwego linka wysyłanego przez przeglądarkę członu http://...&sid=94a576da1f8e5036a0c44fce6b1e1044. 17

Sesje i cookies w PHP Ustawianie cookies: bool setcookie (string $cookiename [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly ]]]]]] ) Odczyt cookies: $_COOKIE['cookiename'] lub $_REQUEST['cookiename']. Sesje: bool session_start() Przykład: session_start(); echo 'Witaj na stronie $_SESSION['strona']<br />'; $_SESSION['strona']; = 'inna strona'; 18

JavaScript <SCRIPT TYPE="text/javascript"> <!-- function Test(){ var s = document.formularz.imie.value; alert("witaj " + s + "!"); } // --> </SCRIPT> <html> <body> Podaj proszę swoje imie: <form name="formularz" onsubmit="test()"> Imie: <input type="text" name="imie" /> <input type="submit"/> </form> </body> </html> 19

AJAX AJAX (Asynchronous JavaScript and XML) jest techniką pozwalającą zapewnić ciągłą (asynchroniczną) komunikację pomiędzy przeglądarką internetową a serwerem www. AJAX nie stanowi odrębnej technologii a jedynie wykorzystuje już istniejące: HTTP, JavaScript, CSS, XML 20

AJAX - przykład <html> <body> <script type="text/javascript"> function ajaxfunction(){ var xmlhttp; try{ // Firefox, Opera 8.0+, Safari xmlhttp=new XMLHttpRequest(); }catch (e){ // Internet Explorer try{ xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); }catch (e){ try{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }catch (e){ alert("w Twojej przeglądarce nie można używać AJAXa!"); return false; } } } 21

AJAX - przykład xmlhttp.onreadystatechange=function(){ if(xmlhttp.readystate==4){ document.formularz.time.value=xmlhttp.responsetext; } } xmlhttp.open("get","time.php",true); xmlhttp.send(null); } </script> <form name="formularz"> Imie: <input type="text" onkeyup="ajaxfunction();" name="imie" /> Czas: <input type="text" name="time" disabled /> </form></body> </html> 22

AJAX shrypt time.php <?php header("expires: Sat, 1 Jan 2000 00:00:00 GMT"); header("last-modified: ".gmdate( "D, d M Y H:i:s")."GMT"); header("cache-control: no-cache, must-revalidate"); header("pragma: no-cache"); echo date("d M Y H:i:s");?> Czas będzie aktualizowany przy każdym wciśnięciu klawisza w polu Imie. Strona nie będzie przeładowywana. Przydatne linki: http://www.w3schools.com/ajax/default.asp http://www.php.net http://httpd.apache.org. 23

Podsumowanie 1. Protokół FTP jest wykorzystywany do przesyłania plików w sieci internet. Usługi www są udostępniane poprzez protokół HTTP działający w modelu request-response. Ze względu na postępujący rozwój i dużą ilość zastosowań opracowano metody asynchronicznej wymiany danych w ramach protokołu HTTP, pomiędzy przeglądarką internetową a serwerem www. 24