SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Perl и SPDY
  Perlburg-2012
Колмогорцев Егор
  ИМКН УрФУ
Проблемы HTTP

●   Один запрос на одно соединение.
●   Запросы может инициировать только клиент.
●   Заголовки передаются несжатыми.
●   Заголовки, которые не изменяются, приходится заново посылать при
    каждом запросе.
●   Сжатие передаваемых данных возможно только опционально.
    Оптимальным является сжимать данные всегда.
Цели SPDY

●   Главная цель - уменьшить время загрузки веб - страниц на 50%
●   Протокол не должен требовать изменений в TCP и HTTP
●   Обеспечить возможность нескольких параллельных HTTP - запросов
    через одно TCP соединение
●   Предоставить серверу возможность самому инициировать
    дополнительные соединения.
●   Обеспечить возможность передачи данных через зашифрованное
    соединение.
Реализация

●   Параллельные HTTP запросы
●   Приоритеты запросов.
●   Сжатие HTTP - заголовков.
●   Server push & server hint.
●   Может работать как поверх SSL,
    так и без него
●   NPN (Next Protocol Negotiation) -
    расширение SSL
Клиент на Perl

●   SSL
     ○ Стабильный OpenSSL не поддерживает NPN
     ○ Perl модули о нем даже не слышали
     ○ Собием свежий OpenSSL
     ○ Пишем патч на Net::SSLeay
●   SPDY::Protocol.pm
     ○ Парсит / собирает SPDY - фреймы
●   SPDY::Client.pm
     ○ Асинхронно загружает ресурсы
     ○ Работает с HTTP::Request / HTTP::Response
Тестирование производительности

●   Perl v. 5.10.1
●   Запросы вида https://encrypted.google.com/search?q=n
 ●  Скорость до загружаемого ресурса: ping = 237 ms, загрузка - 6,51 Mbps,
    отдача - 4.3 Mbps.
Тесты:
     a.  Загрузка только HTML страницы (размер около 70 кб).
     b.  Загрузка страницы вместе с доп. контентом (изображения,
         скрипты итд), суммарный размер примерно 250 kb.
Тестируемые

1.   Последовательная загрузка (через Net::SSLeay::get_https)
2.   Параллельная загрузка в 6 потоков (как в текущих реализациях
     популярных браузеров)
3.   Параллельная загрузка без ограничения на число потоков
4.   SPDY - соединение
Спасибо за внимание!
  Можно задавать вопросы...

Weitere ähnliche Inhalte

Was ist angesagt?

Использование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияИспользование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
phpdevby
 
WebSockets
WebSocketsWebSockets
WebSockets
plusnin
 
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
Ontico
 
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITDevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
Leonid Yuriev
 
Евгений Потапов, АйТиСумма
Евгений Потапов, АйТиСуммаЕвгений Потапов, АйТиСумма
Евгений Потапов, АйТиСумма
Ontico
 

Was ist angesagt? (20)

Использование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияИспользование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
 
HTML Бесплатное размещение
HTML Бесплатное размещениеHTML Бесплатное размещение
HTML Бесплатное размещение
 
HBase on Dev{Highload}
HBase on Dev{Highload}HBase on Dev{Highload}
HBase on Dev{Highload}
 
Cпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложенияCпецкурс 2014, занятие 7. Web-приложения
Cпецкурс 2014, занятие 7. Web-приложения
 
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
 
WebSockets
WebSocketsWebSockets
WebSockets
 
Доставка данных в реальном времени.
Доставка данных в реальном времени. Доставка данных в реальном времени.
Доставка данных в реальном времени.
 
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
Корневая директория WordPress
Корневая директория WordPressКорневая директория WordPress
Корневая директория WordPress
 
Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Сервер «Аллодов Онлайн». Архитектура и особенности разработки. Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
Сервер «Аллодов Онлайн». Архитектура и особенности разработки.
 
Все о бекенде мобильных приложений Badoo
Все о бекенде мобильных приложений BadooВсе о бекенде мобильных приложений Badoo
Все о бекенде мобильных приложений Badoo
 
Ускорение фронтенда ponominalu.ru
Ускорение фронтенда ponominalu.ruУскорение фронтенда ponominalu.ru
Ускорение фронтенда ponominalu.ru
 
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты
 
Lesson1
Lesson1Lesson1
Lesson1
 
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
 
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen ITDevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
 
OSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAPOSSDEV-2015: ReOpenLDAP
OSSDEV-2015: ReOpenLDAP
 
Fiddler
FiddlerFiddler
Fiddler
 
Евгений Потапов, АйТиСумма
Евгений Потапов, АйТиСуммаЕвгений Потапов, АйТиСумма
Евгений Потапов, АйТиСумма
 

Andere mochten auch

Использование Mojolicious::Plugin::AnyData в тестовом режиме проекта
Использование Mojolicious::Plugin::AnyData в тестовом режиме проектаИспользование Mojolicious::Plugin::AnyData в тестовом режиме проекта
Использование Mojolicious::Plugin::AnyData в тестовом режиме проекта
Ilya Zelenchuk
 
Tale Comenius Paco for Bori
Tale Comenius Paco for BoriTale Comenius Paco for Bori
Tale Comenius Paco for Bori
fimarcab
 

Andere mochten auch (9)

Использование Mojolicious::Plugin::AnyData в тестовом режиме проекта
Использование Mojolicious::Plugin::AnyData в тестовом режиме проектаИспользование Mojolicious::Plugin::AnyData в тестовом режиме проекта
Использование Mojolicious::Plugin::AnyData в тестовом режиме проекта
 
Tale Comenius Paco for Bori
Tale Comenius Paco for BoriTale Comenius Paco for Bori
Tale Comenius Paco for Bori
 
Контрактное программирование
Контрактное программированиеКонтрактное программирование
Контрактное программирование
 
Wanas Strategic Sustainability Prez
Wanas Strategic Sustainability PrezWanas Strategic Sustainability Prez
Wanas Strategic Sustainability Prez
 
Wcf faq
Wcf faqWcf faq
Wcf faq
 
Nginx.pm
Nginx.pmNginx.pm
Nginx.pm
 
Потоки в перле изнутри
Потоки в перле изнутриПотоки в перле изнутри
Потоки в перле изнутри
 
Функциональные тесты на Perl
Функциональные тесты на PerlФункциональные тесты на Perl
Функциональные тесты на Perl
 
Coro - реальные потоки в Perl
Coro - реальные потоки в PerlCoro - реальные потоки в Perl
Coro - реальные потоки в Perl
 

Ähnlich wie Perl и SPDY

Ян Жабин "Преимущества использования протокола HTTP/2"
Ян Жабин "Преимущества использования протокола HTTP/2"Ян Жабин "Преимущества использования протокола HTTP/2"
Ян Жабин "Преимущества использования протокола HTTP/2"
Provectus
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
Andrey Smirnov
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
Andrey Smirnov
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Ontico
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
7bits
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
Yandex
 
Smirnov Twisted Python
Smirnov Twisted PythonSmirnov Twisted Python
Smirnov Twisted Python
HighLoad2009
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Sergey Xek
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
7bits
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
rit2011
 
2013 09 14 http-протокол
2013 09 14 http-протокол2013 09 14 http-протокол
2013 09 14 http-протокол
Yandex
 
Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
odnoklassniki.ru
 

Ähnlich wie Perl и SPDY (20)

HTTP протокол
HTTP протоколHTTP протокол
HTTP протокол
 
Ян Жабин "Преимущества использования протокола HTTP/2"
Ян Жабин "Преимущества использования протокола HTTP/2"Ян Жабин "Преимущества использования протокола HTTP/2"
Ян Жабин "Преимущества использования протокола HTTP/2"
 
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
 
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTPСтажировка-2013, разработчики, занятие 7. Web, HTTP
Стажировка-2013, разработчики, занятие 7. Web, HTTP
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
Smirnov Twisted Python
Smirnov Twisted PythonSmirnov Twisted Python
Smirnov Twisted Python
 
Неочевидные возможности ускорения работы сайта
Неочевидные возможности ускорения работы сайтаНеочевидные возможности ускорения работы сайта
Неочевидные возможности ускорения работы сайта
 
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
Полмиллиона юзеров в онлайне без падений: оптимизация высоконагруженного se...
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
 
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
Михаил Корепанов "Инкрементальные обновления на клиенте. Ловкость рук и никак...
 
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
полмиллиона юзеров в онлайне без падений оптимизация высоконагруженной Server...
 
Sivko
SivkoSivko
Sivko
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
2013 09 14 http-протокол
2013 09 14 http-протокол2013 09 14 http-протокол
2013 09 14 http-протокол
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
 
Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.Платформа для видео сроком в квартал. Александр Тоболь.
Платформа для видео сроком в квартал. Александр Тоболь.
 

Perl и SPDY

  • 1. Perl и SPDY Perlburg-2012 Колмогорцев Егор ИМКН УрФУ
  • 2. Проблемы HTTP ● Один запрос на одно соединение. ● Запросы может инициировать только клиент. ● Заголовки передаются несжатыми. ● Заголовки, которые не изменяются, приходится заново посылать при каждом запросе. ● Сжатие передаваемых данных возможно только опционально. Оптимальным является сжимать данные всегда.
  • 3.
  • 4. Цели SPDY ● Главная цель - уменьшить время загрузки веб - страниц на 50% ● Протокол не должен требовать изменений в TCP и HTTP ● Обеспечить возможность нескольких параллельных HTTP - запросов через одно TCP соединение ● Предоставить серверу возможность самому инициировать дополнительные соединения. ● Обеспечить возможность передачи данных через зашифрованное соединение.
  • 5. Реализация ● Параллельные HTTP запросы ● Приоритеты запросов. ● Сжатие HTTP - заголовков. ● Server push & server hint. ● Может работать как поверх SSL, так и без него ● NPN (Next Protocol Negotiation) - расширение SSL
  • 6. Клиент на Perl ● SSL ○ Стабильный OpenSSL не поддерживает NPN ○ Perl модули о нем даже не слышали ○ Собием свежий OpenSSL ○ Пишем патч на Net::SSLeay ● SPDY::Protocol.pm ○ Парсит / собирает SPDY - фреймы ● SPDY::Client.pm ○ Асинхронно загружает ресурсы ○ Работает с HTTP::Request / HTTP::Response
  • 7. Тестирование производительности ● Perl v. 5.10.1 ● Запросы вида https://encrypted.google.com/search?q=n ● Скорость до загружаемого ресурса: ping = 237 ms, загрузка - 6,51 Mbps, отдача - 4.3 Mbps. Тесты: a. Загрузка только HTML страницы (размер около 70 кб). b. Загрузка страницы вместе с доп. контентом (изображения, скрипты итд), суммарный размер примерно 250 kb.
  • 8. Тестируемые 1. Последовательная загрузка (через Net::SSLeay::get_https) 2. Параллельная загрузка в 6 потоков (как в текущих реализациях популярных браузеров) 3. Параллельная загрузка без ограничения на число потоков 4. SPDY - соединение
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Спасибо за внимание! Можно задавать вопросы...