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



Podobne dokumenty
Technologie internetowe


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

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

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

Technologie Internetu. Protokół HTTP. Aleksander Denisiuk.

HTTP. literatura:

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

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

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.

XML-RPC: Zdalne wykonywanie procedur

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

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

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

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

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

Sieciowe systemy informacyjne

Języki programowania wysokiego poziomu WWW

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

1. Model klient-serwer

Kurs WWW. Paweł Rajba

I.Wojnicki, Tech.Inter.

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

Programowanie w Internecie

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

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

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

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Gatesms.eu Mobilne Rozwiązania dla biznesu

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

Problemy z uwierzytelnianiem HTTP

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

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

Wybrane działy Informatyki Stosowanej

Specyfikacja techniczna. mprofi Interfejs API

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

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

DOKUMENTACJA TECHNICZNA SMS API MT

Architektura aplikacji sieciowych. Architektura klient-serwer

Sprawozdanie nr 4. Ewa Wojtanowska

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

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Aplikacje internetowe Koncepcja Architektura Technologie

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

OPIS TECHNICZNY SYSTEM HOSTED SMS

Dokumentacja REST API v 3.0. Kraków, 7 marca FreshMail, ul. Fabryczna 20a, Kraków tel , freshmail.

Programowanie w Internecie

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

Uwierzytelnianie HTTP

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

SEO Audyt. Podsumowanie. 51/100 punktów. Masz 11 rzeczy, które możesz poprawić! Uzyskany wynik: Data przeprowadzenia: :33:47

Sieci komputerowe i bazy danych

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Projektowanie stron WWW

Serwery WWW. Konfiguracja. Zadania serwera. NCSA httpd 1.5

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Laboratorium 6.7.2: Śledzenie pakietów ICMP

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

SSL (Secure Socket Layer)

Programowanie Komponentowe WebAPI

Protokoły Internetowe

Ministerstwo Finansów

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

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

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

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Remote Quotation Protocol - opis

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

World Wide Web? rkijanka

Programowanie Aplikacji Sieciowych

Gatesms.eu Mobilne Rozwiązania dla biznesu

Stos TCP/IP. Warstwa aplikacji cz.2

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

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

Specyfikacja HTTP API. Wersja 1.6

Warszawa Specyfikacja techniczna. mprofi Interfejs API wersja 1.0.7

Analiza malware'u SandroRAT_sec Kaspersky_Mobile_Security.apk

Ministerstwo Finansów

Sprawozdanie Laboratorium 4

Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Dodatek Technologie internetowe 1. UTF-8 wg 2. Adresy URL

Bramka płatnicza. Dokumentacja techniczna. wersja 1.0

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

Dokumentacja 2SMS

Instrukcja obsługi serwera FTP v

Poniższy diagram prezentuje scenariusz subskrypcji aplikacji do usługi CallEventNotifications.

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

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

Dokumentacja Techniczna 1.2. Webtoken MT. Uruchomienie subskrybcji MT poprzez serwis WWW

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

Bazy Danych i Usługi Sieciowe

Ogólnopolskie Repozytorium Prac Dyplomowych

The OWASP Foundation Session Management. Sławomir Rozbicki.

Transkrypt:

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

HTTP Hypertext Transfer Protocol Protokół transmisji hipertekstu został zaprojektowany do komunikacji serwera WW z klientem (przeglądarką) używany od 1990 roku do obsługi WWW jest protokołem warstwy aplikacyjnej dla rozproszonych hipermedialnych systemów może być używany do innych zadań niż WWW umożliwia negocjację rodzaju i typu danych

Historia HTTP Pierwsza wersja protokołu 0.9 z 1990r była bardzo prosta Wersja 1.0 wprowadzała: formaty podobne do typu MIME zawierające meta- informacje o danych zmodyfikowane żądania i odpowiedzi Wersja 1.1 obsługa hierarchicznych serwerów proxy (pośredników) stałych połączeń i hostów wirtualnych

Pojęcia Serwer proxy (pośrednik) pośredniczy w przesyłaniu żądań między przeglądarką WWW i serwerem WWW, działa jak klient i serwer Przechowuje raz ściągnięte strony Serwer wirtualny wywoływany adres URL (http://www.wp.pl) jest obsługiwany przez serwer, którego podstawowy adres jest zupełnie inny. Jeden serwer fizyczny obsługuje zwykle wiele serwerów wirtualnych

Pojęcia MIME (Multipurpose Internet Mail Extensions) format pozwalający na szczegółowy opis przesyłanych danych Hipertekst tekst zawierający znaczniki i odwołania do innych dokumentów lub innego fragmentu tekstu Protokół Język komunikacji

Protokół HTTP Używa najczęściej protokołu TCP/IP do przesyłania żądań i odpowiedzi port 80 dla serwerów WWW 8080 dla serwerów proxy wersja 1.0 wymaga oddzielnych połączeń dla każdego elementu strony - żądania (tekst, grafika...) wersja 1.1 pozwala na przesyłanie wielu żądań/odpowiedzi w jednym połączeniu

HTTP URI i URL identyfikują żądany zasób protokół://serwer:port/ścieżka?parametry parametr: zmienna1=wartość1&zmienna2=wartość2&... minimalnie http://serwer/ znaki specjalne zastępowane są ich wartością szesnastkową poprzedzoną % następujące URI są równoważne http://abc.com:80/~smith/home.html http://abc.com/%7esmith/home.html http://abc.com:/%7esmith/home.html

HTTP URI i URL? - oddziela nazwę zasobu na serwerze od listy parametrów & - oddziela poszczególne pary parametr=wartość Znaki specjalne (spacja,?,&,%...) oraz niektóre znaki narodowe muszą być zakodowane za pomocą znaku % i kodu hex ASCII znaku np: <spacja> - %20

HTTP URI i URL

HTTP URI i URL http://www.google.com/search?hl=pl&ie=utf-8&oe=utf-8&q=agh& btng=szukaj&lr=lang_pl http:// - użycie protokołu HTTP www.google.com - nazwa serwera search nazwa pliku na serwerze lista parametrów: hl=pl host location Polska q=agh question agh ie=utf-8 kodowanie znaków UTF-8 btng=szukaj pytanie wysłane przyciskiem Szukaj lr=lang_pl language requested język polski

HTTP format czasu Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, zmodyfikowane przez RFC 1123 Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, przestarzałe RFC 1036 Sun Nov 6 08:49:37 1994 ; ANSI C asctime() format

HTTP aplikacje User-Agent: określa zgodność przeglądarki ze standardem konkretną wersje np.: Mozilla/4 MSIE /4.0b2 Server: określa nazwę i wersję serwera WWW np.: Apache/2.0.45 IIS/5.0

HTTP waga przyjmuje wartości od 0 do 1 np.: q=0.7 język umożliwia negocjację języka między serwerem i przeglądarką Accept-Language jest ustawione przez klienta Content-Language jest ustawione przez serwer Przykładowe wartości: pl, en, en-us, en-cockney, i-cherokee, x- pig-latin,

HTTP wiadomość Typ widomości Request - żądanie Response - odpowiedź Nagłówek wiadomości składa się z par nazwa:wartość Treść wiadomości (Message Body) Długość wiadomości (Message Length) określana za pomocą Content-Length określa długość treści wiadomości

HTTP żądanie Metoda <pojedynczy odstęp> żądany-uri <pojedynczy odstęp> Wersja-HTTP <znak nowej linii> Treść-wiadomości GET http://www.w3.org/pub/www/theproject.html HTTP/1.1 Metody określa sposób żądania informacji np. GET żądany-uri pełny adres, ścieżka lub * co oznacza odwołanie do samego serwera np. OPTIONS * HTTP/1.1

HTTP żądanie GET /pub/www/theproject.html HTTP/1.1 Host: www.w3.org jest równoważne GET http://www.w3.org/pub/www/theproject.html HTTP/1.1

HTTP żądanie - metody OPTIONS żądanie informacji o połączeniu dotyczy najczęściej serwera a nie konkretnego zasobu np. OPTIONS * HTTP/1.1 GET żądanie zasobów zasobów przekazywane poprzez URI : GET http://www.wp.pl/szukaj.html?szukaj=www HTTP/1.1 odmiany: warunkowy lub częściowy

HTTP żądanie - metody HEAD jak GET, w odpowiedzi nie może być treści POST żądanie nie jest widoczne w URL używany jest do przesyłania większych porcji informacji (np. plików). czas ważności żądania jest ograniczony PUT stosowany jest do umieszczania określonej informacji na serwerze (np. pliku)

HTTP żądanie - metody DELETE usuwanie zasobów z serwera (plików) TRACE pozwala klientowi sprawdzić informację otrzymywaną przez serwer Odpowiedź nie zawiera treści nie jest wysyłane przez serwer proxy CONNECT używane przez serwery proxy

HTTP Odpowiedź Wersja-HTTP <pojedyncza spacja> Kod-Stanu <pojedyncza spacja> Opis-Kodu <Nowa Linia> Treść-Wiadomości Kod-Stanu jest liczbą trzycyfrową określającą powodzenie, niepowodzenie operacji i jego rodzaj 1xx - żądanie odebrane, operacja w toku 2xx - żądanie odebrane, zaakceptowane 3xx - przekierowanie żądania 4xx - błąd w żądaniu, zła składnia, brak dostępu, brak autoryzacji... 5xx - błąd serwera

HTTP nagłówek Nagłówek ogólny Nagłówek żądania Nagłówek odpowiedzi

HTTP nagłówek Accept w nagłówku żądania określa jakie typy informacji są akceptowane w odpowiedzi Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c Accept-Charset określa jaki/jakie strony kodowe znaków narodowych są akceptowane w odpowiedzi Accept-Charset: iso-8859-2, unicode-1-1;q=0.8 Accept-Encoding określa jakie kodowanie jest akceptowane

HTTP nagłówek Accept-Encoding Accept-Encoding: compress, gzip Accept-Language określa akceptowane w odpowiedzi języki narodowe Accept-Language: da, en-gb;q=0.8, en;q=0.7 Accept-Ranges określa zakresy danych akceptowane przez serwer

HTTP nagłówek Age czas w jakim oczekiwana jest odpowiedź Age: 20 (w sekundach) Allow określa akceptowane przez serwer metody Allow: GET, HEAD, PUT Authorisation wysyłany jest przez klienta, który chce się uwierzytelnić (np. nazwa użytkownika i hasło) wysyłany jest w odpowiedzi na ko

HTTP nagłówek Authorisation wysyłany jest w odpowiedzi na kod-stanu 401 (brak autoryzacji) Cache-Control nagłówek ogólny określający przechowywanie danych w łańcuchu żądań/odpowiedzi Cache-Control: dyrektywy w żądaniu używane są dyrektywy: no-cache, no-store, max-age=delta-sek., maxstale=delta-sek., min-fresh=d-sek., no-transform

HTTP nagłówek Cache-Control w odpowiedzi używane są dyrektywy: public, private, no-cache, no-store, no-transform, must-revalidate, proxy-revalidate Connection określa parametry dotyczące połączenia (bez pośrednictwa proxy) Content-Encoding określa sposób kodowania treści informacji Content-Encoding: zip

HTTP nagłówek Content-Language określa język narodowy treści informacji Content-Encoding: pl, en Content-Length określa wielkość treści informacji w bajtach Content-Length: 3495 Content-Location może służyć do określenia zasobów znajdujących się w innym miejscu niż przesyłana treść

HTTP nagłówek Content-MD5 pozwala na umieszczenie skrótu kryptograficznego wiadomości służącego sprawdzeniu integralności informacji. Content-MD5: md5-digest Content-Rage określa jaka część informacji będzie przesłana w treści informacji w połączeniu z nagłówkiem Partial content Content-Rage: bytes 500-999/1234

HTTP nagłówek Content-Type pozwala określić typ przesyłanych w treści danych. Content-Type: text/html Content-Type: text/html; charset=iso-8859-2 Date określa datę utworzenia wiadomości Date: Tue, 15 Nov 1994 08:12:31 GMT

HTTP nagłówek Expect Określa zachowanie serwera wymagane przez klienta Expires określa wygaśnięcia ważności wiadomości Expires: Thu, 01 Dec 1994 16:00:00 GMT From określa adres e-mail osoby używającej przeglądarki From: webmaster@w3.org

HTTP nagłówek Host określa adres serwera i port do którego wysyłamy żądanie Host: www.w3.org:80 odwołując się do http://www.w3.org/pub/www/ otrzymamy np.: GET /pub/www/ HTTP/1.1 Host: www.w3.org Dyrektywy warunkowe: if-match, If-Modified-Since, If-None-Match, If-Range,

HTTP nagłówek Last-Modified Określa datę ostatnie modyfikacji dokumentu Location określa URL używany do przekierowania klienta Location: http://www.w3.org/pub/www/people.html Max-Forwards pozwala ograniczyć ilość pośrednich serwerów proxy

HTTP nagłówek Pragma Określa sposób traktowania informacji przez systemy cache/proxy Pragma: no-cache Proxy-Authenticate, Proxy-Authorization pierwszy jest odpowiedzią serwera proxy na próbę połączenia, drugi odpowiedzią klienta na konieczność autoryzacji przez serwer proxy Rage określa zakres fragmentu przesyłanej treści

HTTP nagłówek Referer wysyłane przez klienta pozwala na określenie przez serwer adresu z którego klient się odwołał Retry-After Określa w razie statusu serwera (usługa czasowo niedostępna) 503 czas po którym powinno nastąpić ponowienie próby Server określa nazwę i wersję serwera oraz komentarz Server: Apache/1.3.19 (Unix) PHP/4.0.4pl1

HTTP nagłówek User-Agent Określa wersję oprogramowania klienta (przeglądarki) User-Agent: Mozilla/4.76 [en] (WinNT; U) Via Określa pośredników (proxy) WWW-Authenticate - sposób autoryzacji klienta Inne: TE, Trailer, Transfer-Encoding, Upgrade, Vary, Warning