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.
5. Twórca
Sir Timothy Berners-Lee
● Brytyjski fizyk i programista
● Absolwent Oxford
● Twórca WWW
● Przewodniczący World Wide Web Consortium (W3C)
● Rycerz
9. HTTP? Na co to komu?
● Przesyłanie hipertekstu
● Normalizacja sposobu komunikacji komputerów
● Na żądanie klienta zwraca odpowiedź z serwera
● Bezstanowy
● port 80
10. 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”).
14. GET
● Zapytanie o konkretny zasób sieciowy
● Powinien tylko pobierać dane, bez zmiany stanu.
● Zapytanie nie ma body
15. 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.
16. PUT
● Umieszczenie pełnej encji pod konkretnym URI (jeżeli już
istnieje zostanie nadpisany).
● Niekeszowalne.
19. TRACE
● Zwraca nam treść zapytania.
● Możemy sprawdzić, czy kanał komunikacyjny jest spójny.
● Zapytanie nie ma body.
● Niekeszowalne.
20. OPTIONS
● Zwraca nam listę metod HTTP, które są dozwolone na danym
URI
● Zapytanie nie ma body.
● Niekeszowalne.
21. 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.
23. 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”.
26. Sesje
● Powiązanie kilku wiadomości w dialog
● W praktyce realizowane poprzez ustawienie cookie
● W przypadku PHP - phpsessid
27. Pragma: no-cache
● HTTP/1.0
● Prośba przeglądarki o zwrócenie aktualnej wersji dokumentu
● Zdefiniowane wyłącznie dla zapytań!
● Legacy, legacy, legacy
28. 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ć
29. 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ę
30. 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