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



Podobne dokumenty
Plan wykładu. 1. Protokół FTP. 2. 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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Programowanie w Internecie

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


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

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

Technologie internetowe

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

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

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

I.Wojnicki, Tech.Inter.

I.Wojnicki, Tech.Inter.

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

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 materiały pomocnicze - wykład VII

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

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

OpenLaszlo. OpenLaszlo

Programowanie w Internecie

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej

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

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

Laboratorium 1 Wprowadzenie do PHP

1. Model klient-serwer

TECHNOLOGIE SIECI WEB

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

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.

Aplikacje internetowe - laboratorium

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

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

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

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

Zaawansowane aplikacje internetowe

Sieciowe systemy informacyjne

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

I.Wojnicki, Tech.Inter.

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

Programowanie Komponentowe WebAPI

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

Aplikacje WWW - laboratorium

Podstawy programowania w języku JavaScript

I.Wojnicki, Tech.Inter.

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

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

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

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

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

Protokoły Internetowe

Technologie Internetu. Protokół HTTP. Aleksander Denisiuk.

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

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

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

Wybrane działy Informatyki Stosowanej

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

Systemy internetowe Wykład 3 PHP

Zajęcia 4 - Wprowadzenie do Javascript

mgr inż. Michał Paluch

Wybrane działy Informatyki Stosowanej

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

Wykład 03 JavaScript. Michał Drabik

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

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

XML-RPC: Zdalne wykonywanie procedur

XML extensible Markup Language. część 5

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

Aplikacje WWW Wprowadzenie

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

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

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

Serwery WWW. Konfiguracja. Zadania serwera. NCSA httpd 1.5

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

HTTP. literatura:

Programowanie w internecie

Protokoły warstwy aplikacji i ich zastosowanie

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

Aplikacje Internetowe. przygotował:

Wprowadzenie do programowania www

Aplikacje Internetowe. Zakres przedmiotu. Plan ramowy. Tworzenie aplikacji internetowych w języku Java w środowisku Eclipse

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy,

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

(argument dla męskiej m. ęści populacji)

Specyfikacja techniczna. mprofi Interfejs API

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

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

Dokumentacja Skryptu Mapy ver.1.1

Podstawy JavaScript ćwiczenia

Apache serwer WWW. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Linux -- u mnie działa!

Transkrypt:

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

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, grafki, animacji oraz dźwięku. Standard WWW został opracowany w 1991 roku. Dwa lata później powstała pierwsza grafczna 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ą identyfkowane za pomocą adresów URL. Domyślny port dla usługi HTTP to 80. 2

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

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

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). 5

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 frmy 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. 6

Konfguracja Apache'a Konfguracja startowa programu serwera: /etc/conf.d/apache2: APACHE2_OPTS="-D DEFAULT_VHOST -D PHP5" Konfguracja 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> 7

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 8

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 9

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

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 identyfkacji klienta. SESSION argumenty związane z klientem trzymane po stronie serwera oznaczone identyfkatorem sesji przekazywanym pomiędzy serwerem i klientem. 11

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;... 12

Sesje Przekazywanie sesji (identyfkatora 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. 13

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'; 14

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

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 16

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; } } } 17

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

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

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