SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
SPDY: 146% faster
    Valentin V. Bartenev
        NGINX, Inc.
2 / 16
          What the fu in the world
           is going on SPDY?

●   Binary protocol
●   Developed by Google
●   Transport layer for HTTP
●   Works over TLS
    –   proxy transparency
3 / 16
A long time ago in a galaxy far,
          far away....
●   Simple sites, light pages
    –   no CSS, no JavaScript
    –   a few graphics
●   Slow clients, low capacity last miles

    p.s. http://wayback.archive.org/
4 / 16
         The world is changing
●   Broadband internet connections
●   Fat pages
●   Browser arms race
●   Hard-to-please customers
5 / 16
           What Is to Be Done?
●   Metrics: RTT, TTFB
●   Browser caching
●   Keepalive, pipelining
●   JS/CSS catenation, sprites, inlining,
    data URI scheme
●   Async loading, AJAX
●   Domain sharding
●   Proxying, CDN
6 / 16
Pipelining
7 / 16
              SPDY features
●   Multiplexing
●   HTTP headers compression
●   Flow control
●   Server push
8 / 16
Multiplexing
9 / 16
     HTTP headers compression
●   Zlib
●   Dictionary
●   CRIME
    - zero compression level
    - zlib hack
    - new algorithm in SPDY/4
10 / 16
                        Lulz
●   Partial alignment
●   24 bits for all headers, but 32 bits for
    every header name and value
●   Blowing hot & cold with priority
●   Mistakes in comp. dictionary
●   Chrome flow control fail
11 / 16
             To be or not to be?
●   HTTPS ready
●   Lot of external resources per page
●   Big RTT
●   Stats from WordPress:
    –   faster than HTTPS,
    –   but slower than plain HTTP
12 / 16
                SPDY in NGINX
●   Sponsored and tested by Automattic
    –   WordPress, Gravatar
    –   Wordpress.com: 70 000 rps, 15+ Gbit/sec
●   Timeline
    –   March 2012: the work has started
    –   15 June: first public release
    –   18 August: last stable version
13 / 16
                                      Results
                                           SPDY Server Survey    Nginx
                                                        9%       Google
               4000
                                                                 Apache
               3500
                                                                 Other
               3000
SPDY domains




               2500

               2000

               1500

               1000

                500

                  0
                      May   October
                                             89%
14 / 16
                     How-To
●   OpenSSL 1.0.1+ (NPN support required)
●   http://nginx.org/patches/spdy/ (temporary)

      server {
         listen 433 ssl spdy;
         ssl_certificate path/to/server.crt;
         ssl_certificate_key path/to/private.key;
         #spdy_headers_comp 1;
      }
15 / 16
         Detect SPDY in browser
●   Chrome/Chromium:
    –   window.chrome.loadTimes().wasFetchedViaSpdy;
    –   chrome://net-internals/#spdy
●   Firefox:
    –   SPDY indicator

    var req = new XMLHttpRequest();
    req.open('HEAD', document.location, false);
    req.send();
    req.getResponseHeader('X-Firefox-Spdy');
16 / 16
      ¿Questions?
     Valentin V. Bartenev
http://vbart.info/, ne@vbart.ru

              Btw,


        is hiring!
     Please submit your CV to
        maxim@nginx.com

Weitere ähnliche Inhalte

Was ist angesagt?

Exasol User Group, 8 Oct 2018: PyEXASOL and UDF
Exasol User Group, 8 Oct 2018: PyEXASOL and UDFExasol User Group, 8 Oct 2018: PyEXASOL and UDF
Exasol User Group, 8 Oct 2018: PyEXASOL and UDFVitaly Markov
 
Use Somebody Else's Infrastructure - Utilizing Amazon S3 and EC2
Use Somebody Else's Infrastructure - Utilizing Amazon S3 and EC2Use Somebody Else's Infrastructure - Utilizing Amazon S3 and EC2
Use Somebody Else's Infrastructure - Utilizing Amazon S3 and EC2Jonathan Weiss
 
Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Jon Peck
 
Gluster fs architecture_future_directions_tlv
Gluster fs architecture_future_directions_tlvGluster fs architecture_future_directions_tlv
Gluster fs architecture_future_directions_tlvSahina Bose
 
Использование MongoDB как основной метабазы в UGC-сервисах
Использование MongoDB как основной метабазы в UGC-сервисахИспользование MongoDB как основной метабазы в UGC-сервисах
Использование MongoDB как основной метабазы в UGC-сервисахYandex
 
Opensource pnp container based waf
Opensource pnp container based wafOpensource pnp container based waf
Opensource pnp container based wafVarun konadagadapa
 
Doing E-commerce Right – Magento on DigitalOcean
Doing E-commerce Right – Magento on DigitalOceanDoing E-commerce Right – Magento on DigitalOcean
Doing E-commerce Right – Magento on DigitalOceanDigitalOcean
 
pacproxy - Ruby hiroba 2014
pacproxy - Ruby hiroba 2014pacproxy - Ruby hiroba 2014
pacproxy - Ruby hiroba 2014Hiroshi Ota
 
Work WIth Redis and Perl
Work WIth Redis and PerlWork WIth Redis and Perl
Work WIth Redis and PerlBrett Estrade
 
Introducción a Nginx y PHP FPM
Introducción a Nginx y PHP FPMIntroducción a Nginx y PHP FPM
Introducción a Nginx y PHP FPMYannick Warnier
 
Druid beginner performance tips
Druid beginner performance tipsDruid beginner performance tips
Druid beginner performance tipsvishnu rao
 
oVirt 3.6 Deep Dive: Refresh LUN size
oVirt 3.6 Deep Dive: Refresh LUN sizeoVirt 3.6 Deep Dive: Refresh LUN size
oVirt 3.6 Deep Dive: Refresh LUN sizeFreddy Rolland
 
Cloud storage: the right way OSS EU 2018
Cloud storage: the right way OSS EU 2018Cloud storage: the right way OSS EU 2018
Cloud storage: the right way OSS EU 2018Orit Wasserman
 
Mikrotik Bridge Deep Dive
Mikrotik Bridge Deep DiveMikrotik Bridge Deep Dive
Mikrotik Bridge Deep DiveGLC Networks
 
Fluentd: Unified Logging Layer at CWT2014
Fluentd: Unified Logging Layer at CWT2014Fluentd: Unified Logging Layer at CWT2014
Fluentd: Unified Logging Layer at CWT2014N Masahiro
 

Was ist angesagt? (20)

Http/2 lightning
Http/2   lightningHttp/2   lightning
Http/2 lightning
 
Exasol User Group, 8 Oct 2018: PyEXASOL and UDF
Exasol User Group, 8 Oct 2018: PyEXASOL and UDFExasol User Group, 8 Oct 2018: PyEXASOL and UDF
Exasol User Group, 8 Oct 2018: PyEXASOL and UDF
 
Use Somebody Else's Infrastructure - Utilizing Amazon S3 and EC2
Use Somebody Else's Infrastructure - Utilizing Amazon S3 and EC2Use Somebody Else's Infrastructure - Utilizing Amazon S3 and EC2
Use Somebody Else's Infrastructure - Utilizing Amazon S3 and EC2
 
Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013
 
Rust programming-language
Rust programming-languageRust programming-language
Rust programming-language
 
Gluster fs architecture_future_directions_tlv
Gluster fs architecture_future_directions_tlvGluster fs architecture_future_directions_tlv
Gluster fs architecture_future_directions_tlv
 
Использование MongoDB как основной метабазы в UGC-сервисах
Использование MongoDB как основной метабазы в UGC-сервисахИспользование MongoDB как основной метабазы в UGC-сервисах
Использование MongoDB как основной метабазы в UGC-сервисах
 
Opensource pnp container based waf
Opensource pnp container based wafOpensource pnp container based waf
Opensource pnp container based waf
 
Doing E-commerce Right – Magento on DigitalOcean
Doing E-commerce Right – Magento on DigitalOceanDoing E-commerce Right – Magento on DigitalOcean
Doing E-commerce Right – Magento on DigitalOcean
 
Ch16
Ch16Ch16
Ch16
 
pacproxy - Ruby hiroba 2014
pacproxy - Ruby hiroba 2014pacproxy - Ruby hiroba 2014
pacproxy - Ruby hiroba 2014
 
Work WIth Redis and Perl
Work WIth Redis and PerlWork WIth Redis and Perl
Work WIth Redis and Perl
 
Introducción a Nginx y PHP FPM
Introducción a Nginx y PHP FPMIntroducción a Nginx y PHP FPM
Introducción a Nginx y PHP FPM
 
Druid beginner performance tips
Druid beginner performance tipsDruid beginner performance tips
Druid beginner performance tips
 
Web server
Web serverWeb server
Web server
 
oVirt 3.6 Deep Dive: Refresh LUN size
oVirt 3.6 Deep Dive: Refresh LUN sizeoVirt 3.6 Deep Dive: Refresh LUN size
oVirt 3.6 Deep Dive: Refresh LUN size
 
Http/2
Http/2Http/2
Http/2
 
Cloud storage: the right way OSS EU 2018
Cloud storage: the right way OSS EU 2018Cloud storage: the right way OSS EU 2018
Cloud storage: the right way OSS EU 2018
 
Mikrotik Bridge Deep Dive
Mikrotik Bridge Deep DiveMikrotik Bridge Deep Dive
Mikrotik Bridge Deep Dive
 
Fluentd: Unified Logging Layer at CWT2014
Fluentd: Unified Logging Layer at CWT2014Fluentd: Unified Logging Layer at CWT2014
Fluentd: Unified Logging Layer at CWT2014
 

Andere mochten auch

Поисковая система Одноклассники.ру (Андрей Шевчук)
Поисковая система Одноклассники.ру (Андрей Шевчук)Поисковая система Одноклассники.ру (Андрей Шевчук)
Поисковая система Одноклассники.ру (Андрей Шевчук)Ontico
 
What is new in MySQL? (Lars Thalmann)
What is new in MySQL? (Lars Thalmann)What is new in MySQL? (Lars Thalmann)
What is new in MySQL? (Lars Thalmann)Ontico
 
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)Эксплуатация или искусство ухода за интернет проектами (Александр Титов)
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)Ontico
 
Международная сеть обмена трафиком Cloud-IX.net (Дмитрий Шаров)
Международная сеть обмена трафиком Cloud-IX.net (Дмитрий Шаров)Международная сеть обмена трафиком Cloud-IX.net (Дмитрий Шаров)
Международная сеть обмена трафиком Cloud-IX.net (Дмитрий Шаров)Ontico
 
Как не потерять деньги на обучении персонала (Александр Орлов, Слава Панкратов)
Как не потерять деньги на обучении персонала (Александр Орлов, Слава Панкратов)Как не потерять деньги на обучении персонала (Александр Орлов, Слава Панкратов)
Как не потерять деньги на обучении персонала (Александр Орлов, Слава Панкратов)Ontico
 
Качество продукта через управление проектом (Ольга Павлова)
Качество продукта через управление проектом (Ольга Павлова)Качество продукта через управление проектом (Ольга Павлова)
Качество продукта через управление проектом (Ольга Павлова)Ontico
 

Andere mochten auch (6)

Поисковая система Одноклассники.ру (Андрей Шевчук)
Поисковая система Одноклассники.ру (Андрей Шевчук)Поисковая система Одноклассники.ру (Андрей Шевчук)
Поисковая система Одноклассники.ру (Андрей Шевчук)
 
What is new in MySQL? (Lars Thalmann)
What is new in MySQL? (Lars Thalmann)What is new in MySQL? (Lars Thalmann)
What is new in MySQL? (Lars Thalmann)
 
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)Эксплуатация или искусство ухода за интернет проектами (Александр Титов)
Эксплуатация или искусство ухода за интернет проектами (Александр Титов)
 
Международная сеть обмена трафиком Cloud-IX.net (Дмитрий Шаров)
Международная сеть обмена трафиком Cloud-IX.net (Дмитрий Шаров)Международная сеть обмена трафиком Cloud-IX.net (Дмитрий Шаров)
Международная сеть обмена трафиком Cloud-IX.net (Дмитрий Шаров)
 
Как не потерять деньги на обучении персонала (Александр Орлов, Слава Панкратов)
Как не потерять деньги на обучении персонала (Александр Орлов, Слава Панкратов)Как не потерять деньги на обучении персонала (Александр Орлов, Слава Панкратов)
Как не потерять деньги на обучении персонала (Александр Орлов, Слава Панкратов)
 
Качество продукта через управление проектом (Ольга Павлова)
Качество продукта через управление проектом (Ольга Павлова)Качество продукта через управление проектом (Ольга Павлова)
Качество продукта через управление проектом (Ольга Павлова)
 

Ähnlich wie SPDY 146% Faster: How NGINX Implements Google's Binary Protocol

SPDY and What to Consider for HTTP/2.0
SPDY and What to Consider for HTTP/2.0SPDY and What to Consider for HTTP/2.0
SPDY and What to Consider for HTTP/2.0Mike Belshe
 
Post-relational databases: What's wrong with web development? v3
Post-relational databases: What's wrong with web development? v3Post-relational databases: What's wrong with web development? v3
Post-relational databases: What's wrong with web development? v3Dobrica Pavlinušić
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Tatsuhiko Miyagawa
 
HTTP/2 and SSL/TLS state of art in ASF servers
HTTP/2 and SSL/TLS state of art in ASF serversHTTP/2 and SSL/TLS state of art in ASF servers
HTTP/2 and SSL/TLS state of art in ASF serversJean-Frederic Clere
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2aspyker
 
Fluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchiveFluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchivePaul Calvano
 
Introduction to Apache Flink
Introduction to Apache FlinkIntroduction to Apache Flink
Introduction to Apache Flinkdatamantra
 
NetFlow Data processing using Hadoop and Vertica
NetFlow Data processing using Hadoop and VerticaNetFlow Data processing using Hadoop and Vertica
NetFlow Data processing using Hadoop and VerticaJosef Niedermeier
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotClouddaoswald
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101ConFoo
 
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdfJean-Frederic Clere
 
Scaling Redis: Dmitry Polyakovsky
Scaling Redis: Dmitry PolyakovskyScaling Redis: Dmitry Polyakovsky
Scaling Redis: Dmitry PolyakovskyRedis Labs
 
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | EnglishAWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | EnglishOmid Vahdaty
 
Build real time stream processing applications using Apache Kafka
Build real time stream processing applications using Apache KafkaBuild real time stream processing applications using Apache Kafka
Build real time stream processing applications using Apache KafkaHotstar
 

Ähnlich wie SPDY 146% Faster: How NGINX Implements Google's Binary Protocol (20)

SPDY @Zynga
SPDY @ZyngaSPDY @Zynga
SPDY @Zynga
 
SPDY
SPDY SPDY
SPDY
 
SPDY and What to Consider for HTTP/2.0
SPDY and What to Consider for HTTP/2.0SPDY and What to Consider for HTTP/2.0
SPDY and What to Consider for HTTP/2.0
 
Post-relational databases: What's wrong with web development? v3
Post-relational databases: What's wrong with web development? v3Post-relational databases: What's wrong with web development? v3
Post-relational databases: What's wrong with web development? v3
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
HTTP/2 and SSL/TLS state of art in ASF servers
HTTP/2 and SSL/TLS state of art in ASF serversHTTP/2 and SSL/TLS state of art in ASF servers
HTTP/2 and SSL/TLS state of art in ASF servers
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 
SPDY
SPDYSPDY
SPDY
 
Fluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchiveFluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP Archive
 
Introduction to Apache Flink
Introduction to Apache FlinkIntroduction to Apache Flink
Introduction to Apache Flink
 
NetFlow Data processing using Hadoop and Vertica
NetFlow Data processing using Hadoop and VerticaNetFlow Data processing using Hadoop and Vertica
NetFlow Data processing using Hadoop and Vertica
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotCloud
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101
 
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
03_clere-HTTP2 HTTP3 the State of the Art in Our Servers.pdf
 
Deploy your own P2P network
Deploy your own P2P networkDeploy your own P2P network
Deploy your own P2P network
 
Scaling Redis: Dmitry Polyakovsky
Scaling Redis: Dmitry PolyakovskyScaling Redis: Dmitry Polyakovsky
Scaling Redis: Dmitry Polyakovsky
 
Spdy
SpdySpdy
Spdy
 
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | EnglishAWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
 
Tomcat openssl
Tomcat opensslTomcat openssl
Tomcat openssl
 
Build real time stream processing applications using Apache Kafka
Build real time stream processing applications using Apache KafkaBuild real time stream processing applications using Apache Kafka
Build real time stream processing applications using Apache Kafka
 

Mehr von Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Mehr von Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

SPDY 146% Faster: How NGINX Implements Google's Binary Protocol

  • 1. SPDY: 146% faster Valentin V. Bartenev NGINX, Inc.
  • 2. 2 / 16 What the fu in the world is going on SPDY? ● Binary protocol ● Developed by Google ● Transport layer for HTTP ● Works over TLS – proxy transparency
  • 3. 3 / 16 A long time ago in a galaxy far, far away.... ● Simple sites, light pages – no CSS, no JavaScript – a few graphics ● Slow clients, low capacity last miles p.s. http://wayback.archive.org/
  • 4. 4 / 16 The world is changing ● Broadband internet connections ● Fat pages ● Browser arms race ● Hard-to-please customers
  • 5. 5 / 16 What Is to Be Done? ● Metrics: RTT, TTFB ● Browser caching ● Keepalive, pipelining ● JS/CSS catenation, sprites, inlining, data URI scheme ● Async loading, AJAX ● Domain sharding ● Proxying, CDN
  • 7. 7 / 16 SPDY features ● Multiplexing ● HTTP headers compression ● Flow control ● Server push
  • 9. 9 / 16 HTTP headers compression ● Zlib ● Dictionary ● CRIME - zero compression level - zlib hack - new algorithm in SPDY/4
  • 10. 10 / 16 Lulz ● Partial alignment ● 24 bits for all headers, but 32 bits for every header name and value ● Blowing hot & cold with priority ● Mistakes in comp. dictionary ● Chrome flow control fail
  • 11. 11 / 16 To be or not to be? ● HTTPS ready ● Lot of external resources per page ● Big RTT ● Stats from WordPress: – faster than HTTPS, – but slower than plain HTTP
  • 12. 12 / 16 SPDY in NGINX ● Sponsored and tested by Automattic – WordPress, Gravatar – Wordpress.com: 70 000 rps, 15+ Gbit/sec ● Timeline – March 2012: the work has started – 15 June: first public release – 18 August: last stable version
  • 13. 13 / 16 Results SPDY Server Survey Nginx 9% Google 4000 Apache 3500 Other 3000 SPDY domains 2500 2000 1500 1000 500 0 May October 89%
  • 14. 14 / 16 How-To ● OpenSSL 1.0.1+ (NPN support required) ● http://nginx.org/patches/spdy/ (temporary) server { listen 433 ssl spdy; ssl_certificate path/to/server.crt; ssl_certificate_key path/to/private.key; #spdy_headers_comp 1; }
  • 15. 15 / 16 Detect SPDY in browser ● Chrome/Chromium: – window.chrome.loadTimes().wasFetchedViaSpdy; – chrome://net-internals/#spdy ● Firefox: – SPDY indicator var req = new XMLHttpRequest(); req.open('HEAD', document.location, false); req.send(); req.getResponseHeader('X-Firefox-Spdy');
  • 16. 16 / 16 ¿Questions? Valentin V. Bartenev http://vbart.info/, ne@vbart.ru Btw, is hiring! Please submit your CV to maxim@nginx.com