Разработчики из компании Google представили [4] первый стабильный релиз mod_spdy [5], модуля к HTTP-серверу Apache 2.2 с реализацией поддержки протокола SPDY [6]. Модуль позволяет интегрировать в web-сервер прозрачную поддержку всех базовых возможностей SPDY, в том числе мультиплексирования потоков и сжатия HTTP-заголовков, без необходимости использования отдельных прокси или без реализации протокола на уровне приложения. Код проекта открыт под лицензией Apache, для установки подготовлены RPM- и DEB-пакеты.
Для организации SSL-соединений mod_spdy использует собственную модифицируемую версию штатного Apache-модуля mod_ssl, отличающуюся добавлением поддержки расширения NPN TLS HTTPS (патчи поставляются в комплекте с mod_spdy). Так как сжатие заголовков производится на этапе обработки соединений, а не на стадии формирования запроса, mod_spdy совместим с другими модулями Apache, т.е. сжатие заголовков не мешает работе модулей, манипулирующих HTTP-заголовками. После включения [7] mod_spdy все обслуживаемые http-сервером сайты автоматически становятся доступными через протокол SPDY при открытии сайта браузером, поддерживающим SPDY. В настоящее время поддержка SPDY включена в браузере платформы Android, Chrome/Chromium и Firefox (по умолчанию SPDY будет включен в Firefox 13, в Firefox 11 и 12 требуется установка переменной network.http.spdy.enabled в about:config).
По оценке [8] разработчиков использование mod_spdy в сочетании с поддерживающими протокол SPDY браузерами позволяет более чем в два раза ускорить загрузку web-страниц, содержащих большое число внешних элементов. Отдельный интерес представляет метод обеспечения мультиплексирования соединений в условиях архитектуры Apache, изначально рассчитанной на однопоточную обработку одного запроса в рамках одного соединения. Для обхода данного ограничения mod_spdy реализует дополнительное разделение по отдельным нитям потоков, связанных с обработкой соединений и запросов. Поток обработки соединений отвечает за декодирование фреймов SPDY и диспетчеризацию новых SPDY-запросов к пулу нитей с обработчиками запросов. Каждая нить с обработчиком запроса может обслуживать свой HTTP-запрос параллельно с другими запросами.
Ссылки:
[1] http://htfl.ru/cat-news-apache
[2] http://htfl.ru/cat-news-google
[3] http://htfl.ru/cat-news-novosti-po
[4] /out.php?link=http://googledevelopers.blogspot.com/2012/04/add-spdy-support-to-your-apache-server.html
[5] /out.php?link=http://code.google.com/p/mod-spdy/
[6] /out.php?link=http://dev.chromium.org/spdy
[7] /out.php?link=http://code.google.com/p/mod-spdy/wiki/GettingStarted
[8] /out.php?link=http://www.youtube.com/watch?v=vEYKRhETy4A
[9] /out.php?link=http://src.chromium.org/viewvc/chrome/trunk/src/net/spdy/
[10] /out.php?link=http://www.chromium.org/spdy/spdy-proxy
[11] /out.php?link=http://blogs.msdn.com/b/interoperability/archive/2012/03/26/speed-and-mobility-an-approach-for-http-2-0-to-make-mobile-apps-and-the-web-faster.aspx
[12] /out.php?link=http://tools.ietf.org/html/draft-montenegro-httpbis-speed-mobility-01
[13] /out.php?link=http://www.belshe.com/2012/03/29/comments-on-microsofts-spdy-proposal/