Ян Жабин "Преимущества использования протокола...
TRANSCRIPT
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 addressIP: 192.0.0.1Port: 80
Destination addressIP: 192.0.0.2Port: 8080
+
Данные пакета (и служебная информация)
IP(Internet Protocol Address) + PORT = cокет
TCP
Тройное рукопожатие
www.provectus.com
ClientServer
y, x+1
SYNx
SYN ACK
ACKy+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
ClientServeropen tcp connection
request
response
close connection
HTTP 1.1
Принцип работы (запрос - ответ)
www.provectus.com
ClientServeropen 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