Top Banner
Wielkie protokoły wielkich ludzi
36

Wielkie protokoły wielkich ludzi

Apr 16, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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ę.