SlideShare a Scribd company logo
Get treated to white glove service
from a five-star innovator
www.provectus.com
A presentation of expertise we boast and services we render for
partners across the board, around the globe.
© Provectus, Inc.
Provectus
PHP Java .NET Java
Script
Cloud Services
iOS Android Ruby J2EE QA
Provectus – международная R&D компания, предоставляющая полный комплекс услуг по разработке
программного обеспечения для корпоративного сегмента, мобильных платформ и WEB по всему
миру.
О спикере
Ян Жабин
• Разработчик
www.provectus.com
HTTP/2
Что мы узнаем
• Введение в HTTP - TCP/IP

• HTTP 1.0

• HTTP 1.1

• Недостатки протокола HTTP 1.1

• HTTP/2

• Как использовать на практике
www.provectus.com
TCP/IP
Принцип работы на пальцах
Работает по принципу ПОЧТЫ
Адрес отправителя

От кого: Яшка Иванов

Откуда: ул. Пушкина, дом Колотушкина - кв. № 5
Адрес получателя

Кому: Ефим Петров

Куда: ул. Новый Мир, дом 4 - кв. 100
+

содержимое письма
www.provectus.com
TCP/IP
Принцип работы на пальцах
www.provectus.com
Source address

IP: 192.0.0.1

Port: 80
Destination address

IP: 192.0.0.2

Port: 8080
+
Данные пакета (и служебная информация)
IP(Internet Protocol Address) + PORT = cокет
TCP
Тройное рукопожатие
www.provectus.com
Client
Server
y, x+1
SYN
x
SYN ACK
ACK
y+1
SYN — синхронизация номеров последовательности
ACK — поле «Номер подтверждения» задействовано
ПРОТОКОЛЫ
Уровни
• IP - сетевой уровень. Отвечает только за доставку пакетов между
адресами.
• TCP/UDP - транспортный уровень. На этом уровне к пакету
добавляется порт отправителя и порт получателя.
HTTP - это просто следующий уровень.
www.provectus.com
HTTP
www.provectus.com
HTTP
Минутка анатомии протокола
Методы
www.provectus.com
GET, POST, PUT, DELETE, HEAD, OPTIONS и другие - указывают на
действие которое нужно выполнить
Коды состояния
1**, 2**, 3**, 4**, 5** - поясняет суть ответа
Заголовки (key-value)
• Общие заголовки - например дата запроса или ответа

• Заголовки запроса

• Заголовки ответа

• Сущности - мета информация (кодировка или тип)
HTTP
Структура
www.provectus.com
• Стартовая строка

• Заголовки

• Тело сообщения
GET /foo/bar HTTP/1.0 - стартовая строка

Host: google.com - заголовок

HTTP/1.0 200 OK - ответ
HTTP
Зачем?
www.provectus.com
HTTP 1.0
Принцип работы (запрос - ответ)
www.provectus.com
Client
Serveropen tcp connection
request
response
close connection
HTTP 1.1
Принцип работы (запрос - ответ)
www.provectus.com
Client
Serveropen tcp connection
request
response
close tcp connection (after 60-150s)
request
response
HTTP 1.1
Недостатки
www.provectus.com
• Стареет (как и все мы с вами)

• Низкая скорость

• Большее потребление ресурсов сервера 

• Влияет на разработку (оптимизации на клиенте). Например -
использование спрайтов.

• Блокировка начала строки (head-of-line blocking)
Это что за покемон?
www.provectus.com
HTTP/2
Фичи
www.provectus.com
• Основан на HTTP 1.1

• Бинарный

• Мультиплексирование запросов или параллельная загрузка 

• Приоритет потоков

• PUSH данные со стороны сервера

• Сжатие заголовков специализированным протоколом HPACK

• Снижение нагрузки на сервер

• Хранит состояние между запросами
HTTP/2
Принцип работы
www.provectus.com
Client
Server
open tcp connection
request
response
close tcp connection
request
response
Priority
push
Compression
HTTP/2
www.provectus.com
HTTP/2
Ограничения
www.provectus.com
• Не полностью поддерживается браузерами

• Не полностью поддерживается веб-серверами

• Работает только поверх TLS (https)
HTTP/2
Установка и настройка NGINX (1.10^)
www.provectus.com
Ubuntu
$ sudo apt-get update
$ sudo apt-get install nginx
Mac
$ brew install nginx
--with-http_v2_module
Config
server {
listen 443 ssl http2;
ssl_certificate server.crt;
ssl_certificate_key server.key;
}
HTTP/2
Установка и настройка APACHE (2.4.17^)
www.provectus.com
Ubuntu
$ sudo apt-get update
$ sudo apt-get install apache2
Mac
$ brew tap homebrew/apache
$ brew update
$ brew install httpd24
Config
Protocols h2 h2c http/1.1
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
$ sudo a2enmod http2
HTTP 2.0
Выводы
www.provectus.com
Таки да - ИСПОЛЬЗОВАТЬ!
Благодарю за внимание!
Вопросы?
www.provectus.com
Ян Жабин
Skype: iyanello
Email: yzhabin@provectus.com
www.provectus.com
Контакты

More Related Content

What's hot

Макс Лапшин Erlyvideo
Макс Лапшин   ErlyvideoМакс Лапшин   Erlyvideo
Макс Лапшин ErlyvideoSiel01
 
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
Alexander Frolov
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Ontico
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиков
ITCrowd Almaty
 
WebSockets
WebSocketsWebSockets
WebSocketsplusnin
 
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Ontico
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥
Oleg Poludnenko
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
ITCrowd Almaty
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
endeveit
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Ontico
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
Oleg Poludnenko
 
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
Provectus
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
EYevseyeva
 
Как обезопасить PBN от взлома? Практические рекомендации
Как обезопасить PBN от взлома? Практические рекомендацииКак обезопасить PBN от взлома? Практические рекомендации
Как обезопасить PBN от взлома? Практические рекомендации
NaZapad
 
Управление версиями в TFS 2008
Управление версиями в TFS 2008Управление версиями в TFS 2008
Управление версиями в TFS 2008
Александр Шамрай
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
Timur Batyrshin
 

What's hot (20)

Макс Лапшин Erlyvideo
Макс Лапшин   ErlyvideoМакс Лапшин   Erlyvideo
Макс Лапшин Erlyvideo
 
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиков
 
WebSockets
WebSocketsWebSockets
WebSockets
 
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
Пряморукий DNS: делаем правильно / Лев Николаев (Макснет)
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
 
Hl Nekoval
Hl NekovalHl Nekoval
Hl Nekoval
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
 
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
От репозитория до CI/CD-инфраструктуры в продакшне за неделю / Дмитрий Чумак ...
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
 
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance ConferenceВыступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
Выступление Андрея Сумина, Mail.Ru Group, на High Performance Conference
 
Как обезопасить PBN от взлома? Практические рекомендации
Как обезопасить PBN от взлома? Практические рекомендацииКак обезопасить PBN от взлома? Практические рекомендации
Как обезопасить PBN от взлома? Практические рекомендации
 
Управление версиями в TFS 2008
Управление версиями в TFS 2008Управление версиями в TFS 2008
Управление версиями в TFS 2008
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько разRootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
 
Управление версиями TFS 2010
Управление версиями TFS 2010Управление версиями TFS 2010
Управление версиями TFS 2010
 

Viewers also liked

How to (and should you?) turn your app idea into a business
How to (and should you?) turn your app idea into a businessHow to (and should you?) turn your app idea into a business
How to (and should you?) turn your app idea into a business
Provectus
 
The way from DB-driven development to DDD
The way from DB-driven development to DDDThe way from DB-driven development to DDD
The way from DB-driven development to DDD
Provectus
 
Роман Степанов: "Анализ данных о местоположении клиентов"
Роман Степанов: "Анализ данных о местоположении клиентов"Роман Степанов: "Анализ данных о местоположении клиентов"
Роман Степанов: "Анализ данных о местоположении клиентов"
Provectus
 
новые технологии при разработке нативного I os приложения в рамках проекта ст...
новые технологии при разработке нативного I os приложения в рамках проекта ст...новые технологии при разработке нативного I os приложения в рамках проекта ст...
новые технологии при разработке нативного I os приложения в рамках проекта ст...
Provectus
 
Geolocation API実地試験
Geolocation API実地試験Geolocation API実地試験
Geolocation API実地試験
mikan_slide
 
Backbone js for expert fridays.pptx
Backbone js for  expert fridays.pptxBackbone js for  expert fridays.pptx
Backbone js for expert fridays.pptx
Provectus
 
Leer inventando
Leer inventandoLeer inventando
Leer inventando
Claudia Valencia
 
Альмеева Ляйсан - Android studio 2.0
Альмеева Ляйсан - Android studio 2.0Альмеева Ляйсан - Android studio 2.0
Альмеева Ляйсан - Android studio 2.0
Provectus
 
Данис Тазетдинов - Зачем нужны-Apple-watch
Данис Тазетдинов - Зачем нужны-Apple-watchДанис Тазетдинов - Зачем нужны-Apple-watch
Данис Тазетдинов - Зачем нужны-Apple-watch
Provectus
 

Viewers also liked (12)

How to (and should you?) turn your app idea into a business
How to (and should you?) turn your app idea into a businessHow to (and should you?) turn your app idea into a business
How to (and should you?) turn your app idea into a business
 
Erika Gonzalez
Erika GonzalezErika Gonzalez
Erika Gonzalez
 
Unix 5 en
Unix 5 enUnix 5 en
Unix 5 en
 
The way from DB-driven development to DDD
The way from DB-driven development to DDDThe way from DB-driven development to DDD
The way from DB-driven development to DDD
 
Роман Степанов: "Анализ данных о местоположении клиентов"
Роман Степанов: "Анализ данных о местоположении клиентов"Роман Степанов: "Анализ данных о местоположении клиентов"
Роман Степанов: "Анализ данных о местоположении клиентов"
 
новые технологии при разработке нативного I os приложения в рамках проекта ст...
новые технологии при разработке нативного I os приложения в рамках проекта ст...новые технологии при разработке нативного I os приложения в рамках проекта ст...
новые технологии при разработке нативного I os приложения в рамках проекта ст...
 
Geolocation API実地試験
Geolocation API実地試験Geolocation API実地試験
Geolocation API実地試験
 
Noor CV
Noor CVNoor CV
Noor CV
 
Backbone js for expert fridays.pptx
Backbone js for  expert fridays.pptxBackbone js for  expert fridays.pptx
Backbone js for expert fridays.pptx
 
Leer inventando
Leer inventandoLeer inventando
Leer inventando
 
Альмеева Ляйсан - Android studio 2.0
Альмеева Ляйсан - Android studio 2.0Альмеева Ляйсан - Android studio 2.0
Альмеева Ляйсан - Android studio 2.0
 
Данис Тазетдинов - Зачем нужны-Apple-watch
Данис Тазетдинов - Зачем нужны-Apple-watchДанис Тазетдинов - Зачем нужны-Apple-watch
Данис Тазетдинов - Зачем нужны-Apple-watch
 

Similar to Ян Жабин "Преимущества использования протокола HTTP/2"

Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложенияCпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения
7bits
 
Lesson1
Lesson1Lesson1
Lesson1
jinol
 
2013 09 14 http-протокол
2013 09 14 http-протокол2013 09 14 http-протокол
2013 09 14 http-протоколYandex
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP7bits
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложенияСтажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения7bits
 
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Лавлинский Николай
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Ontico
 
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Николай Лавлинский
 
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
Ontico
 
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPСтажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
SmartTools
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web
7bits
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложение
Nikolay Sivko
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Ontico
 
Perl и SPDY
Perl и SPDYPerl и SPDY
Perl и SPDY
Ilya Zelenchuk
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
CodeFest
 
HTTP протокол
HTTP протоколHTTP протокол
HTTP протокол
lectureswww lectureswww
 
Урок 20: Протокол HTTP - Евгений Концевой
Урок 20: Протокол HTTP - Евгений КонцевойУрок 20: Протокол HTTP - Евгений Концевой
Урок 20: Протокол HTTP - Евгений Концевой
Леонид Гроховский
 
всё что вы хотели знать о Zend certified
всё что вы хотели знать о Zend certifiedвсё что вы хотели знать о Zend certified
всё что вы хотели знать о Zend certified
Yuri Afanasiev
 

Similar to Ян Жабин "Преимущества использования протокола HTTP/2" (20)

Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложенияCпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения
 
Lesson1
Lesson1Lesson1
Lesson1
 
REST
RESTREST
REST
 
2013 09 14 http-протокол
2013 09 14 http-протокол2013 09 14 http-протокол
2013 09 14 http-протокол
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
 
Стажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложенияСтажировка-2014, занятие 6 (часть 1). Web-приложения
Стажировка-2014, занятие 6 (часть 1). Web-приложения
 
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
 
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
 
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
ТОП ошибок в инфраструктуре, мешающих высоким нагрузкам / Андрей Половов (Флант)
 
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IPСтажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
Стажировка 2016-07-12 02 Денис Нелюбин. Web, HTTP, TCP/IP
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложение
 
Sivko
SivkoSivko
Sivko
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
Perl и SPDY
Perl и SPDYPerl и SPDY
Perl и SPDY
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
HTTP протокол
HTTP протоколHTTP протокол
HTTP протокол
 
Урок 20: Протокол HTTP - Евгений Концевой
Урок 20: Протокол HTTP - Евгений КонцевойУрок 20: Протокол HTTP - Евгений Концевой
Урок 20: Протокол HTTP - Евгений Концевой
 
всё что вы хотели знать о Zend certified
всё что вы хотели знать о Zend certifiedвсё что вы хотели знать о Zend certified
всё что вы хотели знать о Zend certified
 

More from Provectus

Choosing the right IDP Solution
Choosing the right IDP SolutionChoosing the right IDP Solution
Choosing the right IDP Solution
Provectus
 
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Provectus
 
Choosing the Right Document Processing Solution for Healthcare Organizations
Choosing the Right Document Processing Solution for Healthcare OrganizationsChoosing the Right Document Processing Solution for Healthcare Organizations
Choosing the Right Document Processing Solution for Healthcare Organizations
Provectus
 
MLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in ProductionMLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in Production
Provectus
 
AI Stack on AWS: Amazon SageMaker and Beyond
AI Stack on AWS: Amazon SageMaker and BeyondAI Stack on AWS: Amazon SageMaker and Beyond
AI Stack on AWS: Amazon SageMaker and Beyond
Provectus
 
Feature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine LearningFeature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine Learning
Provectus
 
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
Provectus
 
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMRCost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Provectus
 
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
Provectus
 
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K..."Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
Provectus
 
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ..."How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
Provectus
 
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky..."Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
Provectus
 
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2..."Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
Provectus
 
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma..."Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
Provectus
 
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ..."Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
Provectus
 
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
Provectus
 
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
Provectus
 
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti..."Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
Provectus
 
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
Provectus
 
How to implement authorization in your backend with AWS IAM
How to implement authorization in your backend with AWS IAMHow to implement authorization in your backend with AWS IAM
How to implement authorization in your backend with AWS IAM
Provectus
 

More from Provectus (20)

Choosing the right IDP Solution
Choosing the right IDP SolutionChoosing the right IDP Solution
Choosing the right IDP Solution
 
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
Intelligent Document Processing in Healthcare. Choosing the Right Solutions.
 
Choosing the Right Document Processing Solution for Healthcare Organizations
Choosing the Right Document Processing Solution for Healthcare OrganizationsChoosing the Right Document Processing Solution for Healthcare Organizations
Choosing the Right Document Processing Solution for Healthcare Organizations
 
MLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in ProductionMLOps and Data Quality: Deploying Reliable ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in Production
 
AI Stack on AWS: Amazon SageMaker and Beyond
AI Stack on AWS: Amazon SageMaker and BeyondAI Stack on AWS: Amazon SageMaker and Beyond
AI Stack on AWS: Amazon SageMaker and Beyond
 
Feature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine LearningFeature Store as a Data Foundation for Machine Learning
Feature Store as a Data Foundation for Machine Learning
 
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
 
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMRCost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
Cost Optimization for Apache Hadoop/Spark Workloads with Amazon EMR
 
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
ODSC webinar "Kubeflow, MLFlow and Beyond — augmenting ML delivery" Stepan Pu...
 
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K..."Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
"Building a Modern Data platform in the Cloud", Alex Casalboni, AWS Dev Day K...
 
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ..."How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
"How to build a global serverless service", Alex Casalboni, AWS Dev Day Kyiv ...
 
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky..."Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
 
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2..."Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
"Analyzing your web and application logs", Javier Ramirez, AWS Dev Day Kyiv 2...
 
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma..."Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
"Resiliency and Availability Design Patterns for the Cloud", Sebastien Storma...
 
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ..."Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
"Architecting SaaS solutions on AWS", Oleksandr Mykhalchuk, AWS Dev Day Kyiv ...
 
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
"Developing with .NET Core on AWS", Martin Beeby, AWS Dev Day Kyiv 2019
 
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
"How to build real-time backends", Martin Beeby, AWS Dev Day Kyiv 2019
 
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti..."Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
 
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
"Scaling ML from 0 to millions of users", Julien Simon, AWS Dev Day Kyiv 2019
 
How to implement authorization in your backend with AWS IAM
How to implement authorization in your backend with AWS IAMHow to implement authorization in your backend with AWS IAM
How to implement authorization in your backend with AWS IAM
 

Ян Жабин "Преимущества использования протокола HTTP/2"

  • 1. Get treated to white glove service from a five-star innovator www.provectus.com A presentation of expertise we boast and services we render for partners across the board, around the globe. © Provectus, Inc.
  • 2. Provectus PHP Java .NET Java Script Cloud Services iOS Android Ruby J2EE QA Provectus – международная R&D компания, предоставляющая полный комплекс услуг по разработке программного обеспечения для корпоративного сегмента, мобильных платформ и WEB по всему миру.
  • 3. О спикере Ян Жабин • Разработчик www.provectus.com
  • 4. HTTP/2 Что мы узнаем • Введение в HTTP - TCP/IP • HTTP 1.0 • HTTP 1.1 • Недостатки протокола HTTP 1.1 • HTTP/2 • Как использовать на практике www.provectus.com
  • 5. TCP/IP Принцип работы на пальцах Работает по принципу ПОЧТЫ Адрес отправителя
 От кого: Яшка Иванов
 Откуда: ул. Пушкина, дом Колотушкина - кв. № 5 Адрес получателя
 Кому: Ефим Петров
 Куда: ул. Новый Мир, дом 4 - кв. 100 +
 содержимое письма www.provectus.com
  • 6. TCP/IP Принцип работы на пальцах www.provectus.com Source address
 IP: 192.0.0.1
 Port: 80 Destination address
 IP: 192.0.0.2
 Port: 8080 + Данные пакета (и служебная информация) IP(Internet Protocol Address) + PORT = cокет
  • 7. TCP Тройное рукопожатие www.provectus.com Client Server y, x+1 SYN x SYN ACK ACK y+1 SYN — синхронизация номеров последовательности ACK — поле «Номер подтверждения» задействовано
  • 8. ПРОТОКОЛЫ Уровни • IP - сетевой уровень. Отвечает только за доставку пакетов между адресами. • TCP/UDP - транспортный уровень. На этом уровне к пакету добавляется порт отправителя и порт получателя. HTTP - это просто следующий уровень. www.provectus.com
  • 10. HTTP Минутка анатомии протокола Методы www.provectus.com GET, POST, PUT, DELETE, HEAD, OPTIONS и другие - указывают на действие которое нужно выполнить Коды состояния 1**, 2**, 3**, 4**, 5** - поясняет суть ответа Заголовки (key-value) • Общие заголовки - например дата запроса или ответа • Заголовки запроса • Заголовки ответа • Сущности - мета информация (кодировка или тип)
  • 11. HTTP Структура www.provectus.com • Стартовая строка • Заголовки • Тело сообщения GET /foo/bar HTTP/1.0 - стартовая строка Host: google.com - заголовок HTTP/1.0 200 OK - ответ
  • 13. HTTP 1.0 Принцип работы (запрос - ответ) www.provectus.com Client Serveropen tcp connection request response close connection
  • 14. HTTP 1.1 Принцип работы (запрос - ответ) www.provectus.com Client Serveropen tcp connection request response close tcp connection (after 60-150s) request response
  • 15. HTTP 1.1 Недостатки www.provectus.com • Стареет (как и все мы с вами) • Низкая скорость • Большее потребление ресурсов сервера • Влияет на разработку (оптимизации на клиенте). Например - использование спрайтов. • Блокировка начала строки (head-of-line blocking)
  • 16. Это что за покемон? www.provectus.com
  • 17. HTTP/2 Фичи www.provectus.com • Основан на HTTP 1.1 • Бинарный • Мультиплексирование запросов или параллельная загрузка • Приоритет потоков • PUSH данные со стороны сервера • Сжатие заголовков специализированным протоколом HPACK • Снижение нагрузки на сервер • Хранит состояние между запросами
  • 18. HTTP/2 Принцип работы www.provectus.com Client Server open tcp connection request response close tcp connection request response Priority push Compression
  • 20. HTTP/2 Ограничения www.provectus.com • Не полностью поддерживается браузерами • Не полностью поддерживается веб-серверами • Работает только поверх TLS (https)
  • 21. HTTP/2 Установка и настройка NGINX (1.10^) www.provectus.com Ubuntu $ sudo apt-get update $ sudo apt-get install nginx Mac $ brew install nginx --with-http_v2_module Config server { listen 443 ssl http2; ssl_certificate server.crt; ssl_certificate_key server.key; }
  • 22. HTTP/2 Установка и настройка APACHE (2.4.17^) www.provectus.com Ubuntu $ sudo apt-get update $ sudo apt-get install apache2 Mac $ brew tap homebrew/apache $ brew update $ brew install httpd24 Config Protocols h2 h2c http/1.1 SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key $ sudo a2enmod http2
  • 25. Ян Жабин Skype: iyanello Email: yzhabin@provectus.com www.provectus.com Контакты