36
Wielkie protokoły wielkich ludzi

Wielkie protokoły wielkich ludzi

Embed Size (px)

Citation preview

Page 1: Wielkie protokoły wielkich ludzi

Wielkie protokoły wielkich ludzi

Page 2: Wielkie protokoły wielkich ludzi

Uszanowanko!

Page 3: Wielkie protokoły wielkich ludzi
Page 4: Wielkie protokoły wielkich ludzi

Sponsorują:

Page 5: Wielkie protokoły wielkich ludzi

TwórcaSir Timothy Berners-Lee● Brytyjski fizyk i programista● Absolwent Oxford● Twórca WWW● Przewodniczący World Wide Web Consortium (W3C)● Rycerz

Page 6: Wielkie protokoły wielkich ludzi

Duck tape

Page 7: Wielkie protokoły wielkich ludzi

Spis treści● Co to jest HTTP● Metody HTTP● Cookies● Nagłówki● Przykłady zapytań● Live demo

Page 8: Wielkie protokoły wielkich ludzi

HTTP =

Hypertext Transfer Protocol

Page 9: Wielkie protokoły wielkich ludzi

HTTP? Na co to komu?● Przesyłanie hipertekstu● Normalizacja sposobu komunikacji komputerów● Na żądanie klienta zwraca odpowiedź z serwera● Bezstanowy● port 80

Page 10: Wielkie protokoły wielkich ludzi

Z czego składa się wiadomość?● [Metoda] [URI] [Protokół] (np. “GET / HTTP/1.0”)● Nagłówki● Pusta linia● Body (opcjonalnie)

Odpowiedź ma w pierwszej linii status (np. “HTTP/1.1 200 OK”).

Page 11: Wielkie protokoły wielkich ludzi

Przykładowe zapytanie HTTP

Page 12: Wielkie protokoły wielkich ludzi

Przykładowa odpowiedź HTTP

Page 13: Wielkie protokoły wielkich ludzi

Metody HTTPGET, HEAD, PUT, POST, DELETE, OPTIONS, TRACE, CONNECT (1.0), PATCH

Page 14: Wielkie protokoły wielkich ludzi

GET● Zapytanie o konkretny zasób sieciowy● Powinien tylko pobierać dane, bez zmiany stanu.● Zapytanie nie ma body

Page 15: Wielkie protokoły wielkich ludzi

HEAD● Zapytanie o konkretny zasób sieciowy, bez zwracania jego

zwartości.● Powinien tylko pobierać dane, bez zmiany stanu.● Zapytanie i odpowiedź nie mają body.

Page 16: Wielkie protokoły wielkich ludzi

PUT● Umieszczenie pełnej encji pod konkretnym URI (jeżeli już

istnieje zostanie nadpisany).● Niekeszowalne.

Page 17: Wielkie protokoły wielkich ludzi

POST● Umieszczenie encji jako podwładnej konkretnemu URI (np. nowy

post na forum).

Page 18: Wielkie protokoły wielkich ludzi

DELETE● … serio? ;-)● Zapytanie nie ma body● Niekeszowalne.

Page 19: Wielkie protokoły wielkich ludzi

TRACE● Zwraca nam treść zapytania.● Możemy sprawdzić, czy kanał komunikacyjny jest spójny.● Zapytanie nie ma body.● Niekeszowalne.

Page 20: Wielkie protokoły wielkich ludzi

OPTIONS● Zwraca nam listę metod HTTP, które są dozwolone na danym

URI● Zapytanie nie ma body.● Niekeszowalne.

Page 21: Wielkie protokoły wielkich ludzi

CONNECT● Metoda używana do zestawiania tunelu (np. ssl) przez zwykly

protokół HTTP. ● Nie istnieje w HTTP 1.1 ● (i tak jest implementowana ponieważ taśma klejąca)● Niekeszowalne.

Page 22: Wielkie protokoły wielkich ludzi

PATCH● Aktualizacja części encji, umieszczonej pod URI

Page 23: Wielkie protokoły wielkich ludzi

Cookies?● Służą identyfikacji użytkownika● mogą przechowywać informacje o sesji● są wysyłane do serwera przy każdym zapytaniu● usuwają bez z “bezstanowości”.

Page 24: Wielkie protokoły wielkich ludzi

Ustawianie cookieSerwer zwraca nagłówek set-cookie:

Set-Cookie:NID=e7617586147a456489a5de15d65409f9; expires=Sat, 12-Nov-2016 16:17:34 GMT; path=/; domain=.google.com; HttpOnly

Page 25: Wielkie protokoły wielkich ludzi

Wysyłanie cookiesPrzeglądarka wysyła nagłówek:

cookie:NID=e7617586147a456489a5de15d65409f9

Page 26: Wielkie protokoły wielkich ludzi

Sesje● Powiązanie kilku wiadomości w dialog● W praktyce realizowane poprzez ustawienie cookie● W przypadku PHP - phpsessid

Page 27: Wielkie protokoły wielkich ludzi

Pragma: no-cache● HTTP/1.0● Prośba przeglądarki o zwrócenie aktualnej wersji dokumentu● Zdefiniowane wyłącznie dla zapytań!● Legacy, legacy, legacy

Page 28: Wielkie protokoły wielkich ludzi

Cache-control w zapytaniach● Cache-control: public tylko publiczne cache● Cache-control: private tylko prywatne cache● Cache-control: no-cache nie wolno cachować● Cache-control: no-store nie wolno archiwizować

Page 29: Wielkie protokoły wielkich ludzi

Cache-control w odpowiedziach● Cache-control: no-store nie wolno zapisać na dysk● Cache-control: no-cache nie zapisuj do cache● Cache-control: must-revalidate trzeba sprawdzać aktualność ● Cache-control: max-age=1 cache na sekundę

Page 30: Wielkie protokoły wielkich ludzi

Expires● Expires: Thu, 01 Dec 1994 16:00:00 GMT● jeżeli max-age jest zdefiniowany, to Expires jest nadpisywany,

nawet jeżeli jest bardziej restrykcyjny

Page 31: Wielkie protokoły wielkich ludzi

HTTP return codes● 1xx - informacyjny (Continue)● 2xx - sukces (OK/CREATED/ACCEPTED)● 3xx - przekierowanie (301 MOVED PERMANENTLY/302 FOUND)● 4xx - błąd klienta (PAYMENT REQUIRED/NOT

FOUND/FORBIDDEN)● 5xx - bład serwera (INTERNAL SERVER ERROR)

Page 32: Wielkie protokoły wielkich ludzi

Connection: keep-alive● zezwala na wiele zapytań HTTP w jednym połączeniu TCP w

HTTP/1.0● w HTTP/1.1 działa od strzała

Page 33: Wielkie protokoły wielkich ludzi

“Pierwsza zasada live demo: nigdy nie rób live demo”

~ Tyler Durden, Fight Club

Page 34: Wielkie protokoły wielkich ludzi
Page 35: Wielkie protokoły wielkich ludzi

Teraz będzie live demo....

Page 36: Wielkie protokoły wielkich ludzi

Dziękuję za uwagę.