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



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

Wybrane działy Informatyki Stosowanej

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

Instrukcja konfiguracji funkcji skanowania

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

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

Usługi sieciowe systemu Linux

Programowanie współbieżne i rozproszone

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Programowanie w Internecie

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Zdalny dostęp do źródeł elektronicznych BUR dla pracowników i studentów Uniwersytetu Rzeszowskiego

ZiMSK. Konsola, TELNET, SSH 1

MASKI SIECIOWE W IPv4

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

Sieci komputerowe i bazy danych

T: Konfiguracja interfejsu sieciowego. Odwzorowanie nazwy na adres.

4. Podstawowa konfiguracja

Sprawozdanie Laboratorium 4

Wykaz zmian w programie SysLoger

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

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

Tomasz Greszata - Koszalin

Zdalny dostęp do zasobów elektronicznych BGiOINT dla pracowników Politechniki Wrocławskiej

Protokoły zdalnego logowania Telnet i SSH

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

Aplikacje WWW - laboratorium

KARTA KURSU. Administracja serwerami WWW

Przekierowanie portów w routerze - podstawy

Instrukcja instalacji połączenia sterownika PL11-MUT24 ze stroną internetową.

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

SYSTEM PROXY. Zdalny dostęp do zasobów elektronicznych BGiOINT Politechniki Wrocławskiej

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Oprogramowanie OpenVPN jest oprogramowaniem darmowym, które można pobrać ze strony:

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

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

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

KONFIGURACJA SIECIOWA SYSTEMU WINDOWS

Języki programowania wysokiego poziomu WWW

Którą normę stosuje się dla okablowania strukturalnego w sieciach komputerowych?

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

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Współpraca z platformą Emp@tia. dokumentacja techniczna

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

Wymagania techniczne systemu AudaNet/BRE

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

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

Bezpieczne strony WWW dla edukacji, organizacji non-profit i uŝytkowników indywidualnych.

KORZYSTANIE Z BAZY DANYCH UpToDate

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

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

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

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Zdalny dostęp do źródeł elektronicznych BUR dla pracowników i studentów Uniwersytetu Rzeszowskiego

Instrukcja EQU Kantech

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

Niniejsza instrukcja przedstawia przykład konfiguracji koncentratora SSL VPN w trybie Network Extension.

Zdalne logowanie do serwerów

Zakresy prywatnych adresów IPv4: / / /24

Odseparowanie kodu PHP i warstwy prezentacji od dawna było celem

Sprawozdanie nr 4. Ewa Wojtanowska

Dr Michał Tanaś(

cennik usługi transmisja danych DSL tp Tabela 1 Tabela 2 Opłaty instalacyjne za usługę transmisja danych DSL TP

Ćwiczenie 5b Sieć komputerowa z wykorzystaniem rutera.

SERWER AKTUALIZACJI UpServ

PROFFICE/ MultiCash PRO Zmiana parametrów komunikacji VPN do połączenia z Bankiem Pekao S.A.

Firewall bez adresu IP

1. Model klient-serwer

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

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

Internetowy serwis Era mail Aplikacja sieci Web

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

System operacyjny Linux

Sieci Komputerowe i Bazy Danych

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

instrukcja INSTALACJI APi_proxy

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Klient-Serwer Komunikacja przy pomocy gniazd

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

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

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

CENNIK USŁUG TELEKOMUNIKACYJNYCH

KARTA MODUŁU KSZTAŁCENIA

Wykład VI. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski

Ping. ipconfig. getmac

Instalacja i konfiguracja serwera telnet.

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Sieci komputerowe i bazy danych

Protokoły sieciowe - TCP/IP

Dokumentacja SMS przez FTP

OmniTouch 8400 Instant Communications Suite Integracja z programem Microsoft Outlook

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Microsoft Windows 8

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Transkrypt:

Języki i narzędzia programowania III Łukasz Kamiński Wykład I - 2012-10-01

JNP III Cele zajęć Pokazanie pełnej ścieżki realizacji aplikacji na WWW. Pokazanie języka PHP Idea, budowa, działanie, integracja, zarys konstrukcji i podstawowe funkcje Pokazanie ogólnych koncepcji takich jak, hosting, protokoły IP, TCP, rozwiązywanie nazw (DNS), serwery WWW, HTTP, HTML, bazy danych i inne. Pokazanie ścieżki, bez wchodzenia w szczegóły, które każdy w razie potrzeby może dodrążyć.

JNP III Po zajęciach student powinien umieć: Zainstalować sobie lokalnie środowisko testowe. Wybrać, wykupić i skonfigurować hosting. Sprawdzić i skonfigurować serwer WWW. Sprawdzić i podłączyć się do bazy danych. Napisać aplikację WWW w języku PHP Uruchomić aplikację WWW na wykupionym hostingu i wykupionej domenie. Kurs dla NIEZAAWANSOWANYCH! Bez tricków, hacków, cudów.

Organizacja zajęć Termin, poniedziałek 8:30. Podział na wprowadzenie i na zaliczenie. Wprowadzenie, zajęcia 1-8. Wykłady wg planu Zaliczenie, zajęcia 9-15 Brak zajęć, pisanie programów przez studentów. Zaliczenie aplikacja WWW. Termin oddania aplikacji styczeń 2013 Aplikacja może być dowolna (ustalona) Konsultacje przez email lub za umówieniem.

Organizacja zajęć Plan wykładu Wprowadzenie do WWW i HTTP. Konfiguracja środowiska testowego. Domeny i hosting PHP konfiguracja Podstawy PHP (język składnia) Integracja z HTTP Generowanie danych (Smarty, XSLT) Generowanie grafiki Połączenie z bazą danych Biblioteki i aplikacje

Organizacja Zadanie zaliczeniowe. Dowolne, ale ustalone z prowadzącym! Można oddawać do 1. dnia sesji, np. jutro... Można zaliczać w 2. terminie. Strona wykładu http://kamis.waw.pl/jnp-2012/ Zajęcia kończą się zaliczeniem na ocenę. Aplikacje są oceniane przez prowadzącego. Aplikacja może nie działać, może działać, działać dobrze, lub bardzo dobrze. Aplikacja może mieć drobne błędy, istotne błędy, poważne błędy i bardzo poważne błędy.

Omawiane techonologie PHP Język skryptowy ogólnego przeznaczenia. Używany jako język obsługi żądań HTTP po stronie serwera. MySQL, SQLite, PostreSQL Bazy danych trwałość. Apache Serwer WWW obsługa komunikacji. HTTP protokół Firefox, IE, Opera, Chrome Przeglądarki internetowe.

Wprowadzenie ogólne IP DNS TCP Ruting TCP a WWW Protokół HTTP

Usługi WWW Protokół IP (schemat). Sieć lokalna, np. na wydziale. Podsieci, sieci lokalnej. Adresy IP, np. 192.168.2.1 (ifconfig, ipconfig). Interfejsy lokalne. IP zewnętrzne (www.pokapoka.pl). IP zapewnia przesyłanie pakietów - zawodne. Ruting, czyli sposób przesyłania pakietów (route). Możliwość przesłania pakietów (firewall, NAT). Porty usług, sposób na rozróżnienie usług.

Usługi WWW Protokół IP (cd.) Porty, np. SSH 22, WWW 80, 3306 MySQL. Standardowe porty to rzecz zupełnie umowna. IP wysłanie pakietu, bez gwarancji dostarczenia! DNS Translacja nazw zodiac.mimuw.edu.pl 193.0.96.129. Translacja hierarchiczna od końca. Związek wiele do wiele.

Usługi WWW TCP/IP. Protokół niezawodny do komunikacji dwukierunkowej pomiędzy komputerami w sieci. Adresacja IP, adres + port. Nawiązanie połączenia niesymetryczne. Nawiązane połączenie całkowicie symetryczne. Niezawodność opiera się na retransmisji danych, timeoucie, itp. Uwaga, w TCP/IP przy wysłaniu danych dostajemy informację, że dane zostały dostarczone, co nie oznacza, że nadawca jest odebrał!

Ruting Komputery są łączone w sieci. Sieć lokalna, np. ethernet. Sieć lokalna iplus (z podsiecią lokalną). Sieć lokalna neostrada (zewnętrzne numery IP). Internet jako graf połączonych sieci lokalnych. Sieci lokalne mają szereg mechanizmów do komunikowania się. Np. Firewall polityka zezwalania połączeń. NAT łączenie z komputerem za firewallem. Load Balancing rozkładanie obciążenia w sieci.

Konsekwencje użycia TCP WWW używa TCP, cała komunikacja w usługach WWW obiera się o TCP. To że klient łączy się do serwera nie znaczy, że serwer może się połączyć z klientem. Serwer nie jest w stanie identyfikować klienta po numerze IP. Można udawać przeglądarkę za pomocą np. programu telnet (np. telnet google.pl 80). Nazwy serwerów (np. google.pl) to nic innego niż wpisy DNS dla odpowiednich serwerów.

Usługi WWW Co się dzieje po wpisaniu w przeglądarkę http://www.gazeta.pl/? DNS rozwiązanie nazwy (www.gazeta.pl) na nr IP (80.252.0.145). Nawiązanie połączenia TCP/IP z hostem 80.252.0.145 na porcie 80 ( standardowy port WWW). Wysłanie żądania dla strony / - protokół HTTP. Odebranie odpowiedzi protokół HTTP. Rozłączenie.

Serwer WWW Z punktu widzenia serwera. Serwer czeka na wszystkie połączenia na pewnym porcie (standardowo 80). Przy nawiązaniu połączenia, odczytuje żądanie. Interpretuje żądanie. Zwraca wynik. Rozłącza się.

Protokół HTTP Służy do komunikacji klienta WWW (np. przeglądarka) z serwerem WWW. Protokół tekstowy (za wyjątkiem np. transmisji obrazków, czy kompresji danych). HTML jest czymś innym niż HTTP. Za pomocą protokołu HTTP można przesłać stronę WWW opisaną w postaci dokumentu HTML. http://en.wikipedia.org/wiki/hypertext_transf er_protocol

Protokół HTTP

Protokół HTTP

URL z przeglądarki http://www.google.pl/search?q=ala Port 80, alternatywnie: http://www.google.pl:1234/search?q=ala http nagłówek adresu opisujący protokół komunikacji. www.google.pl adres serwera. /search?q=ala część adresu specyfikująca parametry odwołania. Każde żądanie składa się z definicji serwera docelowego i parametrów żądania.

Wirtualne hosty Każda specyfikacja serwera to adres: www.google.pl, google.pl, google.com, www.google.com, itd. www.mimuw.edu.pl, 193.0.96.13 Ale adres IP nie jest pełną specyfikację adresu serwera! Wewnątrz jednego serwera WWW i wewnątrz jednego adresu IP serwera WWW może istnieć wiele serwisów.

Wirtualne hosty Standardowo adres rozwiązuje się do adresu IP, np. www.gazeta.pl 80.252.0.145. Ale http://www.gazeta.pl/ daje inny wynik niż http://80.252.0.145/. Np. www.deser.pl, www.wyborcza.pl, www.lula.pl, www.moto.pl 80.252.0.132 Ale każdy jest odrębnym serwisem. Wewnątrz serwera WWW można zdefiniować wiele serwisów WWW zależnych od adresu (domenowego) serwera.

Parametry odwołania /search?q=ala /deser/1,83453,6278644,nastolatki.html Całe żądanie jest interpretowane przez serwer. Sposób interpretacji mocno zależny od konfiguracji serwera. Standardowo znaki / oddzielają katalogi w logicznej strukturze serwera. Standardowo po? znajduje się lista parametrów w postaci nazwa=wartość&nazwa=wartość&... Postać łańcucha parametrów całkowicie umowa.

Łańcuchy parametrów Mechanizmy definiowania postaci żądań. Apache mod-rewrite. PHP wsparcie dla automatycznego interpretowania parametrów w postaci? nazwa=wartość&... Apache wsparcie dla interpretacji ścieżek postaci /nazwa/nazwa/nazwa/... za pomocą systemu plików i plików konfiguracji.

Protokół HTTP

Protokół HTTP

Protokół HTTP Standardowo GET odpowiedź. Odpowiedzi. Kody 100, 200, 300, 400, 500. 200 Ok 206 Partial Content. 300-307 przekierowanie. 401 autoryzacja. 403 brak dostępu. 404 Not found. 500 Błąd wewnętrzny.

HTTP usługi specjalne Rozszerzenie keep-alive. Standardowo każde żądanie do serwera WWW powinno iść w nowym połączeniu TCP. Mała sensowność takiego rozwiązania, lepiej trzymać połączenie i realizować kilka żądań w jednym połączeniu. Nie zmienia to bezpołączeniowej semantyki żądań WWW! Proxy Służy do minimalizacji ilości ruchu w sieci. Wpierane przez protokół HTTP. W dużej mierze przezroczyste dla programisty aplikacji WWW.

Usługi zewnętrzne Usługi przeglądarki. Cache Pipelining Wiele równoległych połączeń do pobrania całości wyniku. Najczęściej spotykane do pobierania w tle obrazków, plików js i css. Wykorzystywane też do ściągania tego samego pliku w kilku fragmentach. Serwer może nie pozwalać na to. Parsownie częściowego wyniku Wyświetlanie niekompletnego wyniku od razu po pobraniu części danych. Np. HTML. Warto mieć świadomość tego przy konstrukcji strony, np. wszystkie CSS-y na początku pliku.

Bezpołączniowość HTTP Konsekwencje. HTTP nie pozwala na jednoznaczną identyfikację połączenia czy użytkownika. Żądania do serwera są nieliniowe i nie muszą wynikać ze struktury stron WWW. Użytkownik może w URL wpisać cokolwiek i serwer nie ma na to wpływu.

Języki WWW Używając odpowiednich narzędzi do WWW w ogóle nie trzeba się przejmować obsługą HTTP. PHP Integracja z serwerem WWW (Apache). Pisanie skryptów w odpowiednim katalogu i automatyczne uruchamianie w momencie odwołania. PHP to zwykły program możliwy do uruchomienia z linii poleceń. Obsługa żądania.

Języki Języki ukrywają przed programistą obsługę HTTP. Mapowanie struktury odwołania /dir1/dir2/skrypt.php na katalogi i pliki na serwerze. Parsowanie parametrów, np. index.php? a=ala&b=ma&c=psa $a = ala ; $b = ma ; $c = psa ; Parsowanie nagłówków HTTP. Dodawanie nagłówków HTTP przy zwracaniu odpowiedzi.

Plan HTML GET/POST Cookie CSS Inne technologie JavaScript, Flash, Java. Instalacja Apache PHP MySQL Hosting Sprawdzenie konfiguracji Domena

HTML Prezentacja danych dla użytkownika.

HTML HTTP HTTP Serwer WWW HTML

HTML Renderowanie widoku po stronie klienta. Dużo materiałów w sieci. Teoretycznie dana strona powinna wyglądać tak samo na wszystkich przeglądarkach. Istnieją standardy, ale Standardy sobie a przeglądarki sobie. Standardy nie określają wszystkiego. IE (6, 7) ma swoje postrzeganie świata. Można robić zgodnie ze standardami, ale głupio aby na 20% przeglądarek nie działało? http://validator.w3.org/

HTML paradoks IE M$ ma problem z IE8. IE 5/6/7 niezgodne ze standardami. Programiści dostosowali strony do: Standardów IE Okazuje się, że obecnie strony rozpoznają czy przeglądarka to IE czy nie IE. Wersja 8 IE jest zgodna ze standardami, ale przez to niezgodna z IE 6/7. W efekcie strony mogą nie działać pod nowszymi wersjami IE.

HTML - formularze Rozdział na POST/GET Rożnica w sposobie przesyłania danych. Limity na długość żądania. GET RFC 2068-255 znaków, Opera ~ 4096, IE = 2083, FF ~ 8192. POST generalnie bez limitu, ale serwer może odrzucać połączenia po przekroczeniu limitu, uwaga na timeout, uwaga na cierpliwość użytkownika. Różnice w cachowaniu żądania. Koncepcja: GET pobranie danych do prezentacji. POST wykonanie operacji. Po POST powinno być przekierowanie na stronę GET! Inne zachowanie przeglądarki.

Formularz - przykład <form action='/x.php'><input name='a' value='b'/></form> Wysłanie GET. URL /x.php?a=b <form action='/x.php' method='post'><input name='a' value='b'/></form> Wysłanie GET. URL /x.php Dane przesyłane w treści żądania HTTP.

HTML GET/POST - cookie Mechanizm do przechowywanie danych serwera po stronie klienta. Część HTTP. Serwer może wysłać do przeglądarki informację, że klient ma przechowywać pewne dane. Dane te są przesyłane do serwera przy każdej komunikacji klient serwer! Dane są przypisane do domeny. Dane mają okres ważności (do określonej sekundy) lub do końca połączenia z serwerem. Nikt nie jest w stanie zagwarantować rzetelności danych w cookie.

Cookie

Logowanie HTTP: Login + Hasło Ustawienie cookie Np. login + hasło Serwer WWW walidacja login + hasło HTTP Cookie login + hasło

Cookie inne zastosowania Ustawienia użytkowników. gazeta.pl ustawienia kolejności boxów. Automatyczne logowanie. Identyfikacja użytkowników bez ich wiedzy. Słaba autoryzacja Koszyki zakupowe Liczniki odwiedzin Sondy Oszustwa Plotka o cenach w sklepach i innych serwisach Przykład ustawienia cookie dla poddomeny.