Компания Google выпустила модуль к Apache для обеспечения поддержки протокола SPDY

19 апреля 2012 года

Разработчики из компании Google представили первый стабильный релиз mod_spdy, модуля к HTTP-серверу Apache 2.2 с реализацией поддержки протокола SPDY. Модуль позволяет интегрировать в web-сервер прозрачную поддержку всех базовых возможностей SPDY, в том числе мультиплексирования потоков и сжатия HTTP-заголовков, без необходимости использования отдельных прокси или без реализации протокола на уровне приложения. Код проекта открыт под лицензией Apache, для установки подготовлены RPM- и DEB-пакеты.

Для организации SSL-соединений mod_spdy использует собственную модифицируемую версию штатного Apache-модуля mod_ssl, отличающуюся добавлением поддержки расширения NPN TLS HTTPS (патчи поставляются в комплекте с mod_spdy). Так как сжатие заголовков производится на этапе обработки соединений, а не на стадии формирования запроса, mod_spdy совместим с другими модулями Apache, т.е. сжатие заголовков не мешает работе модулей, манипулирующих HTTP-заголовками. После включения mod_spdy все обслуживаемые http-сервером сайты автоматически становятся доступными через протокол SPDY при открытии сайта браузером, поддерживающим SPDY. В настоящее время поддержка SPDY включена в браузере платформы Android, Chrome/Chromium и Firefox (по умолчанию SPDY будет включен в Firefox 13, в Firefox 11 и 12 требуется установка переменной network.http.spdy.enabled в about:config).

По оценке разработчиков использование mod_spdy в сочетании с поддерживающими протокол SPDY браузерами позволяет более чем в два раза ускорить загрузку web-страниц, содержащих большое число внешних элементов. Отдельный интерес представляет метод обеспечения мультиплексирования соединений в условиях архитектуры Apache, изначально рассчитанной на однопоточную обработку одного запроса в рамках одного соединения. Для обхода данного ограничения mod_spdy реализует дополнительное разделение по отдельным нитям потоков, связанных с обработкой соединений и запросов. Поток обработки соединений отвечает за декодирование фреймов SPDY и диспетчеризацию новых SPDY-запросов к пулу нитей с обработчиками запросов. Каждая нить с обработчиком запроса может обслуживать свой HTTP-запрос параллельно с другими запросами.

Протокол SPDY был создан специально для минимизации задержек при соединении и обмене данными между клиентом и сервером. При обслуживании соединения SPDY использует похожий на HTTP механизм взаимодействия в форме запрос/ответ. SPDY добавляет сеансовый уровень поверх SSL, что даёт возможность обеспечить передачу нескольких одновременных потоков в рамках одного TCP-соединения. При использовании HTTP запросы в рамках одного потока обслуживаются последовательно, задействование SPDY даёт возможность мультиплексировать запросы ресурсов, обрабатывать их параллельно и отправлять запросы с учетом динамически рассчитываемых приоритетов, увеличивая текущую пропускную способность. Использование SSL одновременно позволяет решить проблему с прохождением запросов через прокси серверы и позволяет организовать доставку данных по инициативе сервера, без специального запроса клиента (технология Server push). Дополнительное ускорение достигается за счёт сжатия HTTP-заголовков запроса и ответа, что уменьшает размер передаваемых данных и заметно ускоряет загрузку страниц, порождающих большое число мелких запросов (CSS, JavaScript файлы, картинки), особенно при использовании медленных каналов связи.

Код с эталонной реализацией SPDY

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Компания Google выпустила модуль к Apache для обеспечения поддержки протокола SPDY», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.