Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Wielkie protokoły wielkich ludzi

624 views

Published on

Maciej Mączko - Wielkie protokoły wielkich ludzi

Używany na co dzień, znormalizowany sposób komunikacji w sieci WWW istnieje w prawie niezmiennej formie od wielu lat. HTTP, bo o nim mowa, jest prosty ale skuteczny. Poznamy jego historię, podstawowe metody i wykonamy kilka zapytań. Wstęp do następnego wykładu.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Wielkie protokoły wielkich ludzi

  1. 1. Wielkie protokoły wielkich ludzi
  2. 2. Uszanowanko!
  3. 3. Sponsorują:
  4. 4. Twórca Sir Timothy Berners-Lee ● Brytyjski fizyk i programista ● Absolwent Oxford ● Twórca WWW ● Przewodniczący World Wide Web Consortium (W3C) ● Rycerz
  5. 5. Duck tape
  6. 6. Spis treści ● Co to jest HTTP ● Metody HTTP ● Cookies ● Nagłówki ● Przykłady zapytań ● Live demo
  7. 7. HTTP = Hypertext Transfer Protocol
  8. 8. HTTP? Na co to komu? ● Przesyłanie hipertekstu ● Normalizacja sposobu komunikacji komputerów ● Na żądanie klienta zwraca odpowiedź z serwera ● Bezstanowy ● port 80
  9. 9. 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”).
  10. 10. Przykładowe zapytanie HTTP
  11. 11. Przykładowa odpowiedź HTTP
  12. 12. Metody HTTP GET, HEAD, PUT, POST, DELETE, OPTIONS, TRACE, CONNECT (1.0), PATCH
  13. 13. GET ● Zapytanie o konkretny zasób sieciowy ● Powinien tylko pobierać dane, bez zmiany stanu. ● Zapytanie nie ma body
  14. 14. 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.
  15. 15. PUT ● Umieszczenie pełnej encji pod konkretnym URI (jeżeli już istnieje zostanie nadpisany). ● Niekeszowalne.
  16. 16. POST ● Umieszczenie encji jako podwładnej konkretnemu URI (np. nowy post na forum).
  17. 17. DELETE ● … serio? ;-) ● Zapytanie nie ma body ● Niekeszowalne.
  18. 18. TRACE ● Zwraca nam treść zapytania. ● Możemy sprawdzić, czy kanał komunikacyjny jest spójny. ● Zapytanie nie ma body. ● Niekeszowalne.
  19. 19. OPTIONS ● Zwraca nam listę metod HTTP, które są dozwolone na danym URI ● Zapytanie nie ma body. ● Niekeszowalne.
  20. 20. 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.
  21. 21. PATCH ● Aktualizacja części encji, umieszczonej pod URI
  22. 22. 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”.
  23. 23. Ustawianie cookie Serwer zwraca nagłówek set-cookie: Set-Cookie:NID=e7617586147a456489a5de15d65409f9; expires=Sat, 12-Nov-2016 16:17:34 GMT; path=/; domain=.google. com; HttpOnly
  24. 24. Wysyłanie cookies Przeglądarka wysyła nagłówek: cookie:NID=e7617586147a456489a5de15d65409f9
  25. 25. Sesje ● Powiązanie kilku wiadomości w dialog ● W praktyce realizowane poprzez ustawienie cookie ● W przypadku PHP - phpsessid
  26. 26. Pragma: no-cache ● HTTP/1.0 ● Prośba przeglądarki o zwrócenie aktualnej wersji dokumentu ● Zdefiniowane wyłącznie dla zapytań! ● Legacy, legacy, legacy
  27. 27. 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ć
  28. 28. 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ę
  29. 29. 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
  30. 30. 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)
  31. 31. 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
  32. 32. “Pierwsza zasada live demo: nigdy nie rób live demo” ~ Tyler Durden, Fight Club
  33. 33. Teraz będzie live demo....
  34. 34. Dziękuję za uwagę.

×