SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Wielkie protokoły wielkich ludzi
Uszanowanko!
Sponsorują:
Twórca
Sir Timothy Berners-Lee
● Brytyjski fizyk i programista
● Absolwent Oxford
● Twórca WWW
● Przewodniczący World Wide Web Consortium (W3C)
● Rycerz
Duck tape
Spis treści
● Co to jest HTTP
● Metody HTTP
● Cookies
● Nagłówki
● Przykłady zapytań
● Live demo
HTTP
=
Hypertext Transfer Protocol
HTTP? Na co to komu?
● Przesyłanie hipertekstu
● Normalizacja sposobu komunikacji komputerów
● Na żądanie klienta zwraca odpowiedź z serwera
● Bezstanowy
● port 80
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”).
Przykładowe zapytanie HTTP
Przykładowa odpowiedź HTTP
Metody HTTP
GET, HEAD, PUT, POST, DELETE, OPTIONS, TRACE, CONNECT (1.0),
PATCH
GET
● Zapytanie o konkretny zasób sieciowy
● Powinien tylko pobierać dane, bez zmiany stanu.
● Zapytanie nie ma body
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.
PUT
● Umieszczenie pełnej encji pod konkretnym URI (jeżeli już
istnieje zostanie nadpisany).
● Niekeszowalne.
POST
● Umieszczenie encji jako podwładnej konkretnemu URI (np. nowy
post na forum).
DELETE
● … serio? ;-)
● Zapytanie nie ma body
● Niekeszowalne.
TRACE
● Zwraca nam treść zapytania.
● Możemy sprawdzić, czy kanał komunikacyjny jest spójny.
● Zapytanie nie ma body.
● Niekeszowalne.
OPTIONS
● Zwraca nam listę metod HTTP, które są dozwolone na danym
URI
● Zapytanie nie ma body.
● Niekeszowalne.
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.
PATCH
● Aktualizacja części encji, umieszczonej pod URI
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”.
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
Wysyłanie cookies
Przeglądarka wysyła nagłówek:
cookie:NID=e7617586147a456489a5de15d65409f9
Sesje
● Powiązanie kilku wiadomości w dialog
● W praktyce realizowane poprzez ustawienie cookie
● W przypadku PHP - phpsessid
Pragma: no-cache
● HTTP/1.0
● Prośba przeglądarki o zwrócenie aktualnej wersji dokumentu
● Zdefiniowane wyłącznie dla zapytań!
● Legacy, legacy, legacy
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ć
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ę
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
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)
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
“Pierwsza
zasada live
demo: nigdy nie
rób live demo”
~ Tyler Durden, Fight Club
Teraz będzie live demo....
Dziękuję za uwagę.

Weitere ähnliche Inhalte

Was ist angesagt?

Michal Smereczynski - Linux on Windows - InterOpConf 2013
Michal Smereczynski - Linux on Windows - InterOpConf 2013Michal Smereczynski - Linux on Windows - InterOpConf 2013
Michal Smereczynski - Linux on Windows - InterOpConf 2013
Michał Smereczyński
 
Onet barcamp 4 - Cloud Storage
Onet barcamp 4  - Cloud StorageOnet barcamp 4  - Cloud Storage
Onet barcamp 4 - Cloud Storage
OnetIT
 

Was ist angesagt? (14)

GlusterFS
GlusterFSGlusterFS
GlusterFS
 
OpenSSH Kombajn z Wodotryskiem
OpenSSH Kombajn z WodotryskiemOpenSSH Kombajn z Wodotryskiem
OpenSSH Kombajn z Wodotryskiem
 
PLNOG 8: Tomasz Paszkowski - Wirtualne systemy dyskowe na platformie OpenStac...
PLNOG 8: Tomasz Paszkowski - Wirtualne systemy dyskowe na platformie OpenStac...PLNOG 8: Tomasz Paszkowski - Wirtualne systemy dyskowe na platformie OpenStac...
PLNOG 8: Tomasz Paszkowski - Wirtualne systemy dyskowe na platformie OpenStac...
 
7 Grzechów Głównych, czyli jak nie prowadzić (i nie ulepszać) strony opartej ...
7 Grzechów Głównych, czyli jak nie prowadzić (i nie ulepszać) strony opartej ...7 Grzechów Głównych, czyli jak nie prowadzić (i nie ulepszać) strony opartej ...
7 Grzechów Głównych, czyli jak nie prowadzić (i nie ulepszać) strony opartej ...
 
Uporzadkuj swoj TypoScript. TYPO3camp Poland 2013.
Uporzadkuj swoj TypoScript. TYPO3camp Poland 2013.Uporzadkuj swoj TypoScript. TYPO3camp Poland 2013.
Uporzadkuj swoj TypoScript. TYPO3camp Poland 2013.
 
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...
PLNOG 3: Krzysztof Góźdź - Petabajtowe systemy przechowywania danych dla dost...
 
Extend TS Lint - your code quality guard
Extend TS Lint - your code quality guardExtend TS Lint - your code quality guard
Extend TS Lint - your code quality guard
 
Prezentacja Jabber
Prezentacja JabberPrezentacja Jabber
Prezentacja Jabber
 
Michal Smereczynski - Linux on Windows - InterOpConf 2013
Michal Smereczynski - Linux on Windows - InterOpConf 2013Michal Smereczynski - Linux on Windows - InterOpConf 2013
Michal Smereczynski - Linux on Windows - InterOpConf 2013
 
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
Net core (dawniej   5.0) – co to dla mnie. też dużo o open sourceNet core (dawniej   5.0) – co to dla mnie. też dużo o open source
Net core (dawniej 5.0) – co to dla mnie. też dużo o open source
 
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
 
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza
Optymalizacyjna magia, czyli jak wyciągać króliki z kapelusza
 
Onet barcamp 4 - Cloud Storage
Onet barcamp 4  - Cloud StorageOnet barcamp 4  - Cloud Storage
Onet barcamp 4 - Cloud Storage
 
LXC - kontener pingwinów
LXC - kontener pingwinówLXC - kontener pingwinów
LXC - kontener pingwinów
 

Andere mochten auch

Andere mochten auch (20)

Varnish
VarnishVarnish
Varnish
 
Deployment z Ansible
Deployment z AnsibleDeployment z Ansible
Deployment z Ansible
 
Dependency Injection w Androidzie
Dependency Injection w AndroidzieDependency Injection w Androidzie
Dependency Injection w Androidzie
 
Bitcoin - (nie)udany eksperyment?
Bitcoin - (nie)udany eksperyment?Bitcoin - (nie)udany eksperyment?
Bitcoin - (nie)udany eksperyment?
 
Tester - przyjaciel czy wróg programisty?
Tester - przyjaciel czy wróg programisty?Tester - przyjaciel czy wróg programisty?
Tester - przyjaciel czy wróg programisty?
 
Design dla estetycznie ograniczonych
Design dla estetycznie ograniczonychDesign dla estetycznie ograniczonych
Design dla estetycznie ograniczonych
 
Confd - Uszanowanko Programowanko
Confd - Uszanowanko ProgramowankoConfd - Uszanowanko Programowanko
Confd - Uszanowanko Programowanko
 
Deploy appki na iOS, czyli magia publikacji
Deploy appki na iOS, czyli magia publikacjiDeploy appki na iOS, czyli magia publikacji
Deploy appki na iOS, czyli magia publikacji
 
TDD w iOS
TDD w iOS TDD w iOS
TDD w iOS
 
Inżynieria społeczna jako element testów bezpieczeństwa - tylko teoria, czy j...
Inżynieria społeczna jako element testów bezpieczeństwa - tylko teoria, czy j...Inżynieria społeczna jako element testów bezpieczeństwa - tylko teoria, czy j...
Inżynieria społeczna jako element testów bezpieczeństwa - tylko teoria, czy j...
 
Docker
DockerDocker
Docker
 
Gherkin - jak zostać poetą w IT
Gherkin - jak zostać poetą w ITGherkin - jak zostać poetą w IT
Gherkin - jak zostać poetą w IT
 
e2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końcee2e frameworks - czyli kij ma dwa końce
e2e frameworks - czyli kij ma dwa końce
 
Pi razy drzwi - o szacowaniu projektów
Pi razy drzwi - o szacowaniu projektówPi razy drzwi - o szacowaniu projektów
Pi razy drzwi - o szacowaniu projektów
 
Gulp.js - alternatywa do Grunta
Gulp.js - alternatywa do GruntaGulp.js - alternatywa do Grunta
Gulp.js - alternatywa do Grunta
 
Testing and symfony2
Testing and symfony2Testing and symfony2
Testing and symfony2
 
You Shall Not Pass - Security in Symfony
You Shall Not Pass - Security in SymfonyYou Shall Not Pass - Security in Symfony
You Shall Not Pass - Security in Symfony
 
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
 
PHP 7
PHP 7PHP 7
PHP 7
 
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...
Pierwsza aplikacja na iOS, czyli z czym można się spotkać, co jest trudne i c...
 

Ähnlich wie Wielkie protokoły wielkich ludzi

Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
Wojciech Lichota
 
The story of GOG.com Cache - PHPers 2014 ( PL )
 The story of GOG.com Cache - PHPers 2014 ( PL ) The story of GOG.com Cache - PHPers 2014 ( PL )
The story of GOG.com Cache - PHPers 2014 ( PL )
GOG.com dev team
 
4Developers2015: Serwis z kamerkami - pole minowe wydajności - Łukasz Łuczak
4Developers2015: Serwis z kamerkami - pole minowe wydajności - Łukasz Łuczak4Developers2015: Serwis z kamerkami - pole minowe wydajności - Łukasz Łuczak
4Developers2015: Serwis z kamerkami - pole minowe wydajności - Łukasz Łuczak
PROIDEA
 
Info meet pomiary wydajności
Info meet pomiary wydajnościInfo meet pomiary wydajności
Info meet pomiary wydajności
magda3695
 

Ähnlich wie Wielkie protokoły wielkich ludzi (20)

Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?Swoole w PHP. Czy to ma sens?
Swoole w PHP. Czy to ma sens?
 
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
 
The story of GOG.com Cache - PHPers 2014 ( PL )
 The story of GOG.com Cache - PHPers 2014 ( PL ) The story of GOG.com Cache - PHPers 2014 ( PL )
The story of GOG.com Cache - PHPers 2014 ( PL )
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 
Space Wars Hack - Class #1
Space Wars Hack - Class #1Space Wars Hack - Class #1
Space Wars Hack - Class #1
 
Krytyczne błędy konfiguracji
Krytyczne błędy konfiguracjiKrytyczne błędy konfiguracji
Krytyczne błędy konfiguracji
 
It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
 
The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )
 
Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
 
4Developers2015: Serwis z kamerkami - pole minowe wydajności - Łukasz Łuczak
4Developers2015: Serwis z kamerkami - pole minowe wydajności - Łukasz Łuczak4Developers2015: Serwis z kamerkami - pole minowe wydajności - Łukasz Łuczak
4Developers2015: Serwis z kamerkami - pole minowe wydajności - Łukasz Łuczak
 
Exatel Security Days 2017 - Niech dane pozostaną z Tobą! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostaną z Tobą! Sieciowe techniki ek...Exatel Security Days 2017 - Niech dane pozostaną z Tobą! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostaną z Tobą! Sieciowe techniki ek...
 
multi-tier cache at gog.com - 4developers
multi-tier cache at gog.com -  4developersmulti-tier cache at gog.com -  4developers
multi-tier cache at gog.com - 4developers
 
The story of GOG.com Cache
The story of GOG.com Cache The story of GOG.com Cache
The story of GOG.com Cache
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
Shall we play a game? PL version
Shall we play a game? PL versionShall we play a game? PL version
Shall we play a game? PL version
 
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
 
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
 
Info meet pomiary wydajności
Info meet pomiary wydajnościInfo meet pomiary wydajności
Info meet pomiary wydajności
 

Mehr von The Software House

Mehr von The Software House (20)

Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
 
Uszanowanko Podsumowanko
Uszanowanko PodsumowankoUszanowanko Podsumowanko
Uszanowanko Podsumowanko
 
Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?
 
O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?
 
Chat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon ChimeChat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon Chime
 
Migracje danych serverless
Migracje danych serverlessMigracje danych serverless
Migracje danych serverless
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?
 
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSAnaliza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
 
Feature flags na ratunek projektu w JavaScript
Feature flags na ratunek projektu w JavaScriptFeature flags na ratunek projektu w JavaScript
Feature flags na ratunek projektu w JavaScript
 
Typowanie nominalne w TypeScript
Typowanie nominalne w TypeScriptTypowanie nominalne w TypeScript
Typowanie nominalne w TypeScript
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLAutomatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
 
Serverless Compose vs hurtownia danych
Serverless Compose vs hurtownia danychServerless Compose vs hurtownia danych
Serverless Compose vs hurtownia danych
 
Testy API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięciTesty API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięci
 
Jak skutecznie read model. Case study
Jak skutecznie read model. Case studyJak skutecznie read model. Case study
Jak skutecznie read model. Case study
 
Firestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny KrzemowejFirestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny Krzemowej
 
Jak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzachJak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzach
 
Jak poskromić AWS?
Jak poskromić AWS?Jak poskromić AWS?
Jak poskromić AWS?
 
O łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.jsO łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.js
 
Amazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurzeAmazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurze
 
Od Figmy do gotowej aplikacji bez linijki kodu
Od Figmy do gotowej aplikacji bez linijki koduOd Figmy do gotowej aplikacji bez linijki kodu
Od Figmy do gotowej aplikacji bez linijki kodu
 

Wielkie protokoły wielkich ludzi