Technologie Internetu. Protokół HTTP. Aleksander Denisiuk. denisjuk@pja.edu.pl



Podobne dokumenty
Technologie internetowe


Programowanie w Internecie

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

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

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

Języki programowania wysokiego poziomu WWW

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

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

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

I.Wojnicki, Tech.Inter.

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

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

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

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

XML-RPC: Zdalne wykonywanie procedur

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

Wybrane działy Informatyki Stosowanej

HTTP. literatura:

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

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

I.Wojnicki, Tech.Inter.

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

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

1. Model klient-serwer

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

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

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

SIP: Session Initiation Protocol. Krzysztof Kryniecki 16 marca 2010

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Sieciowe systemy informacyjne

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Protokół HTTP. Omówienie standardu z analizą ruchu sieciowego

Orange Send MMS. Autoryzacja. Metoda HTTP. Parametry wywołania. API wyślij MMS dostarcza wiadomości MMS. Basic POST

Aplikacje WWW Wprowadzenie

Serwery WWW. Konfiguracja. Zadania serwera. NCSA httpd 1.5

Zadanie programistyczne nr 3 z Sieci komputerowych

Specyfikacja techniczna. mprofi Interfejs API

Programowanie Komponentowe WebAPI

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

mgr inż. Michał Paluch

Ogólnopolskie Repozytorium Prac Dyplomowych

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

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

Architektura aplikacji sieciowych. Architektura klient-serwer

Protokoły Internetowe

Laboratorium nr 4 - Badanie protokołów WWW

Analiza malware'u SandroRAT_sec Kaspersky_Mobile_Security.apk

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

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

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

Zaawansowane Techniki WWW (HTML, CSS i JavaScript)

Kurs WWW. Paweł Rajba

Sprawozdanie nr 4. Ewa Wojtanowska

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

Rozproszone systemy Internetowe

Sieci komputerowe i bazy danych

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

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

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

Zaawansowany kurs języka Python

Apache. Apache serwer WWW

Java Enterprise Edition spotkanie nr 1 (c.d.) JavaMail

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Simple Object Access Protocol

PROTOKOŁY OBSŁUGI POCZTY ELEKTRONICZNEJ

Dokumentacja Techniczna. Dokumentacja techniczna usługi płatności mobilnych

Aplikacje internetowe Koncepcja Architektura Technologie

DOKUMENTACJA TECHNICZNA SMS API MT

Wybrane działy Informatyki Stosowanej

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Protokół HTTP wprowadzenie. Protokół HTTP podstawowe cechy. Protokół HTTP podstawowe cechy. Protokół HTTP. Podstawowy protokół World Wide Web

Obsługa incydentów bezpieczeństwa: część I, z punktu widzenia menadżera. OWASP The OWASP Foundation

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

Tomasz Greszata - Koszalin

Dokument hipertekstowy

Stos TCP/IP. Warstwa aplikacji cz.2

Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego

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

Sprawozdanie Laboratorium 4

7. Dynamiczne generowanie grafiki

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Plan całości wykładu. Warstwa łącza i sieci lokalne

OPIS TECHNICZNY SYSTEM HOSTED SMS

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

TIN Techniki Internetowe zima

Cookie Policy. 1. Informacje ogólne.

Warstwa aplikacji. Model TCP/IP Model OSI

Programowanie w Internecie

Java wybrane technologie

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

Protokół wymiany sentencji, wersja 1

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

Ministerstwo Finansów

Uwierzytelnianie HTTP

pasja-informatyki.pl

KORZYSTANIE Z BAZY DANYCH UpToDate

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Transkrypt:

Technologie Internetu Protokół HTTP Aleksander Denisiuk denisjuk@pja.edu.pl Polsko-Japońska Akademia Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi 55 80-045 Gdańsk Technologie Internetu p. 1

Protokół HTTP Najnowsza wersja tego dokumentu dostępna jest pod adresemhttp://users.pja.edu.pl/~denisjuk/ Technologie Internetu p. 2

HyperText Transfer Protocol Protokół warstwy aplikacji Architektura klient-serwer: żadanie odpowiedź Jest podstawowym protokołem World Wide Web Jest wykorzystywany jako transport dla innych protokołów: XML-RPC, SOAP, WebDAV Technologie Internetu p. 3

Zasoby Podstawowe obiekty: zasoby, wskazane przez Uniform Resource Identifier w żadaniu klienta: pliki, obiekty abstrakcyjne Klient w żadaniu może wskazać sposób prezentacji zasoba: kodowanie, format, język, etc Możliwa jest wymiana danych binarnych (mimo że protokół jest tekstowy) Technologie Internetu p. 4

Bezstanowy Schemat żadanie-odpowiedź Identyfikacja zasobów poprzez absolutny URI W protokole nie jest zapamiętywana informacja o poprzednich tranzakcjach Możliwe jest zapamiętywanie przez oprogramowanie: klient, serwer Technologie Internetu p. 5

Zalety Prostota realizacji Rozszerzalność: nieznane nagłówki będa ignorowane Rozpowszechnioność Technologie Internetu p. 6

Wady Duży rozmiar przekazywanych komunikatów Cachowanie danych u klienta Kompresja danych Proxy-serwery Diff-kodowanie Brak nawigacji Strony Site map PlikiSitemap protokółwebdav Brak rozproszoności protokółhttp-ng Technologie Internetu p. 7

Oprogramowanie Serwery Apache 38,78% Microsoft29,481% nginx 14,25% Google 2,33% Dane Netcraft za maj 2015 Technologie Internetu p. 8

Oprogramowanie Przegladarki Chrome 69,9% Firefox 21,5% Internet Explorer 7,1% Safari 3,8% Opera 1,6% Dane W3CSchools za kwiecień 2014 Technologie Internetu p. 9

Oprogramowanie Inne klienty Przegladarki tekstowe Przegladarki mobilne Wirtualne mapy Maszyny indeksujace Menadżery pobierań Pobieranie aktualizacji oprogramowania Technologie Internetu p. 10

Historia HTTP HTTP 1991 Tim Berners-Lee HTTP/0.9 1992, pierwsza specyfikacja HTTP/1.0 1996, RFC 1945 HTTP/1.1 1999 obecny standard trwałe (persistent) połaczenia konieczne wysyłanie nazwy hosta w żadaniu SPDY 2012, Google HTTP/2.0 2015. Hypertext Transfer Protocol Bis Working Group (The Internet Engineering Task Force): protokół binary, semantyka zgadza się z HTTP/1.1 dalej omawiany jest tylko HTTP/1.1 Technologie Internetu p. 11

Struktura protokołu Każdy komunikat (zapytanie i odpowiedź) składa się z trzech części, przekazywanych we wskazanej kolejności: 1. Linia startowa (Starting line) określa typ komunikatu 2. Nagłówki (Headers) zawiera meta-dane 3. Pusta linia 4. Dane (Body). Tylko linia startowa jest wymagana W żadaniu wymagany jest również nagłówek, zawierajacy nazwę hosta Technologie Internetu p. 12

Linia startowa żadania METODA URI HTTP/1.1 METODA nazwa żadania URI zasób HTTP/1.1 wersja protokołu Przykład: GET /i/pjwstk_logo.gif HTTP/1.1 Technologie Internetu p. 13

Linia startowa odpowiedzi HTTP/1.1 Kod Komentarz HTTP/1.1 wersja protokołu Kod trzycyfrowy kod opracowania żadania Komentarz tekstowy komentarz, opcjonalny Przykład: HTTP/1.1 200 OK Technologie Internetu p. 14

Metody żadania każdy serwer powiniem obsługiwać metodyget ihead jeżeli serwer nie rozpoznał metody żadania, on zwraca kod odpowiedzi 501 (Not implemented) jeżeli serwer rozpoznał metodę, ale one nie może zostać zastosowana do zasobu, zwraca się kod odpowiedzi 405 (Method not allowed) w obu przypadkach serwer w odpowiedzi dołacza hagłówekallowed z lista zaimplementowanych metod Technologie Internetu p. 15

Metody żadania. OPTIONS Opytanie serwera o zaimplementowanych metodach Przykład: OPTIONS * HTTP/1.1 Host: www.pjwstk.edu.pl HTTP/1.1 200 OK Date: Sat, 26 Mar 2011 21:17:24 GMT Server: Apache Allow: GET,HEAD,POST,OPTIONS Content-Length: 0 Content-Type: text/plain Technologie Internetu p. 16

Metody żadania. GET Pobieranie zasobu Przykład: GET /i/pjwstk_logo.gif HTTP/1.1 Host: www.pjwstk.edu.pl HTTP/1.1 200 OK Date: Sat, 26 Mar 2011 21:22:11 GMT Server: Apache Last-Modified: Tue, 10 Mar 2009 06:28:42 GMT ETag: "2c01951a-114c-464bddcbfda80" Accept-Ranges: bytes Content-Length: 4428 Content-Type: image/gif GIF89a... Technologie Internetu p. 17

Metody żadania. HEAD Pobieranie meta-danych o zasobie Przykład: HEAD /i/pjwstk_logo.gif HTTP/1.1 Host: www.pjwstk.edu.pl HTTP/1.1 200 OK Date: Sat, 26 Mar 2011 21:22:11 GMT Server: Apache Last-Modified: Tue, 10 Mar 2009 06:28:42 GMT ETag: "2c01951a-114c-464bddcbfda80" Accept-Ranges: bytes Content-Length: 4428 Content-Type: image/gif Technologie Internetu p. 18

Inne metody żadania POST wysyłanie danych na serwer do przetwarzania PUT umieszczenie wysłanych danych na serwerze PATCH uzupełnienie zasobu na serwerze DELETE usuwanie zasobu na serwerze TRACE zwraca otrzymane zapytanie (można zobaczyć, jak ono zostało zmodyfikowano na pośrednich serwerach) Technologie Internetu p. 19

Klasy kodów odpowiedzi 1xx Kody informacyjne 2xx Kody powodzenia 3xx Kody przekierowania 4xx Kody błędu aplikacji klienta 5xx Kody błędu serwera Technologie Internetu p. 20

Kody informacyjne 100 Continue 110 Connection Timed Out 111 Connection refused Technologie Internetu p. 21

Kody powodzenia 200 OK 201 Created 206 Partial Content Technologie Internetu p. 22

Kody przekierowania 300 Multiple Choices 301 Moved Permanently 307 Temporary Redirect 303 See Other Technologie Internetu p. 23

Kody błędu aplikacji klienta 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 413 Request Entity Too Large Technologie Internetu p. 24

Kody błędu serwera 500 Internal Server Error 503 Service Unavailable Technologie Internetu p. 25

Nagłówki HTTP Nazwa: Wartość Cztery rodzaje: 1. General Headers, zarówno w żadaniu jak i w odpowiedzi 2. Request Headers w żadaniu 3. Response Headers tylko w odpowiedzi 4. Entity Headers określaja zawartość Technologie Internetu p. 26

Ogólne nagłówki Date data generacji komunikata Transfer-Encoding sposób kodowania komunikata przy transmisji Technologie Internetu p. 27

Nagłówki żadania Accept lista typów akceptowalnych przez klienta zasobów Accept-Charset lista akceptowalnych kodowań znaków Accept-Ecnoding lista akceptowalnych sposobów kodowania zasobu przy transmisji Host nazwa hosta (jest wymagany), pozwala na organizację wirtualnych hostów If-Modified-Since jeżeli zasób został zmodyfikowany Range część zasobu User-Agent nazwa klienta Technologie Internetu p. 28

Nagłówki odpowiedzi Accept-Ranges akceptowalne jednostki części zasobów ETag unikatowy identyfikator (dla cachowania) Location URI dla przekierowania Allow lista obsługiwanych metod Server nazwa serwera Technologie Internetu p. 29

Nagłówki zawartości Content-Encoding sposób kodowania zasobu przy transmisji (gzip,deflate) Content-Language lista języków zasobu Content-Length rozmiar zasobu w bajtach Content-Range fragment zasobu Content-Type format i soposób reprezentacji zasobu Technologie Internetu p. 30

HTTP URI http_url = "http:" "//" host [ ":" port ] [ path ] [ "?" query ] [ "#" fragment ] Domyślnieport 80, path zależy od ustawień serwera (index.html, index.php,defaut.htm, etc http://gdansk.pjwstk.edu.pl/ http://192.168.1.1/~denisjuk#edukacja http://192.168.1.1/?search=qw&erty=op http://[::192.9.5.5]/ipng Technologie Internetu p. 31

Typy zasobów sposób przekazywania: statyczne dynamiczne (być może z użyciem parametryzacji) do klasyfikacji treści służy pojęcie typu medium (medium type) Technologie Internetu p. 32

Typ MIME Internet Media Type aka Multipurpose Internet Mail Extensions Opracowane istotnie w RFC 2046 dla SMTP Używane obecnie w HTTP, RTP, SIP, etc Specyfikacja typu medium: typ/podtyp[; parametryopcjonalne] Przykłady specyfikacji: text/plain; charset=utf-8 application/javascript image/png Technologie Internetu p. 33

Typy MIME application: dla specyficznych potrzeb application/atom+xml application/javascript (IE 9) application/pdf application/vnd.oasis.opendocument.text application/vnd.ms-excel application/x-latex application/x-rar-compressed application/x-shockwave-flash application/x-font-ttf nie jest zarejestrowanym typem Technologie Internetu p. 34

Typy MIME, cd audio : audio/vorbis image : audio/mpeg audio/x-ms-wma image/png image/jpeg image/svg+xml video : video/mpeg video/ogg Technologie Internetu p. 35

Typy MIME, cdd text : text/css text/csv text/html text/javascript (przestarzały) text/plain text/xml multipart : multipart/mixed (Email) multipart/form-data Technologie Internetu p. 36

IANA Internet Assigned Numbers Authority http://www.iana.org/assignments/media-types można zarejestrować własne typy (podtypy) Technologie Internetu p. 37

Serwer a typ mediów Serwer informuje klientów o typie medium zasobu Klient na podstawie tej informacji może stosownie opracować zasób Serwery rozpoznaja typy udostępnianych przez: magiczna liczbę (magic number) rozszerzenie nazwy pliku z zasobem jawne przypisanie typu do zasobu w konfiguracji serwera, badź w treści hipertekstowej Technologie Internetu p. 38

Przykład żadaniamultipart POST /send-message.html HTTP/1.1 Host: mail.example.com Referer: http://mail.example.com/send-message.html User-Agent: BrowserForDummies/4.67b Content-Type: multipart/form-data; boundary="asrf456bge4h" Content-Length: cały rozmiar Connection: keep-alive Keep-Alive: 300 --Asrf456BGe4h Content-Disposition: form-data; name="destaddress" bv@example.com --Asrf456BGe4h Content-Disposition: form-data; name="messagetitle" Greetings! Technologie Internetu p. 39

Przykład żadaniamultipart, cd --Asrf456BGe4h Content-Disposition: form-data; name="messagetext" I am Shehu Musa Abacha, cousin to the former Nigerian dictator Sani Abacha. Please, find attached my photos --Asrf456BGe4h Content-Disposition: form-data; name="attachedfile1"; filename="musa.jpg" Content-Type: image/jpeg dane binarne --Asrf456BGe4h Content-Disposition: form-data; name="attachedfile2"; filename="sani.jpg" Content-Type: image/jpeg dane binarne --Asrf456BGe4h-- Technologie Internetu p. 40

Połaczenia trwałe open połączenie standardowe klient serwer open połączenie trwałe klient serwer close open time close open close close Technologie Internetu p. 41

Połaczena trwałe NagłówekConnection: persistent HTTP/1.0 niestandardowa opcja implementowana przez wiele klientów/serwerów HTTP/1.1 połaczenia sa domyślnie trwałe (Connection: close) Proxy używaja trwałych połaczeń tylko z serwerem Połaczenia w każdej chwili moga zostać przerwane zarówno przez serwer jak i przez klienta Technologie Internetu p. 42

Połaczena trwałe. Zasady jeśli klient nie chce wysyłać kolejnych żadań w ramach połaczenia, powinien wysłać nagłówekconnection: close serwer nie powinien zamykać połaczenia w trakcie wysyłania odpowiedzi przed zamknięciem połaczenia serwer powinien odpowiedzieć na co najmniej jedno żadanie aplikacja HTTP/1.1 powinna radzić sobie w sytuacjach niespodziewanego (asynchronicznego) zamknięcia połaczenia ponowić żadanie automatycznie spytać użytkownika ( efekty uboczne ) Technologie Internetu p. 43

Połaczena trwałe. Potoki wysyłanie w ramach połaczenia trwałego kilku żadań po kolei, bez oczekiwania na odpowiedź Odpowiedzi powinny być generowane w takiej samej kolejności HTTP nie udostępnia mechanizmu numerowania komunikatów W ramach potoku klient nie powinien wysyłać żadań, które moga powodować efekty uboczne Technologie Internetu p. 44

DEMO HEAD /images/logo_pjwstk.gif HTTP/1.1 Host: gdansk.pjwstk.edu.pl GET /images/logo_pjwstk.gif HTTP/1.1 Host: gdansk.pjwstk.edu.pl GET /favicon.ico HTTP/1.1 Host: www.pjwstk.edu.pl GET /templates/pjwstk/favicon.ico HTTP/1.1 Host: www.pja.edu.pl OPTIONS * HTTP/1.1 Host: www.pjwstk.edu.pl Technologie Internetu p. 45