В состав HTTP-сервера Apache включён модуль с поддержкой протокола SPDY
Компания Google сообщила об интеграции в основную кодовую базу HTTP-сервера Apache 2.4 модуля mod_spdy, содержащего реализацию протокола SPDY, составляющего основу будущего стандарта HTTP/2.0. Модуль позволяет интегрировать в HTTP-сервер прозрачную поддержку всех базовых возможностей SPDY, а также определённых в черновом варианте спецификации HTTP/2.0 средств по мультиплексированию потоков. Для организации SSL-соединений mod_spdy использует штатный модуль mod_ssl, дополненный поддержкой расширения NPN TLS HTTPS. Так как сжатие заголовков производится на этапе обработки соединений, а не на стадии формирования запроса, mod_spdy совместим с другими модулями Apache, т.е. сжатие заголовков не мешает работе модулей, манипулирующих HTTP-заголовками. После загрузки модуля и указания директивы «SpdyEnabled on» все обслуживаемые HTTP-сервером сайты автоматически становятся доступными через протокол SPDY при открытии сайта браузером, поддерживающим SPDY.
В настоящее время поддержка протокола SPDY присутствует в большинстве современных браузеров, включая Firefox, Chrome, Opera и Internet Explorer 11. По оценке разработчиков использование mod_spdy в сочетании с поддерживающими протокол SPDY браузерами позволяет более чем в два раза ускорить загрузку web-страниц, содержащих большое число внешних элементов.
Отдельный интерес представляет метод обеспечения мультиплексирования соединений в условиях архитектуры Apache, изначально рассчитанной на однопоточную обработку одного запроса в рамках одного соединения. Для обхода данного ограничения mod_spdy реализует дополнительное разделение по отдельным нитям потоков, связанных с обработкой соединений и запросов. Поток обработки соединений отвечает за декодирование фреймов SPDY и диспетчеризацию новых SPDY-запросов к пулу нитей с обработчиками запросов. Каждая нить с обработчиком запроса может обслуживать свой HTTP-запрос параллельно с другими запросами.
Протокол SPDY разработан для минимизации задержек при соединении и обмене данными между клиентом и сервером. По данным Google ускорение работы реальных сайтов при использовании SPDY составляет от 15% до 50%. SPDY добавляет сеансовый уровень поверх SSL, что даёт возможность обеспечить передачу нескольких одновременных потоков в рамках одного TCP-соединения. SPDY позволяет мультиплексировать запросы ресурсов, обрабатывать их параллельно и отправлять запросы с учетом динамически рассчитываемых приоритетов, увеличивая текущую пропускную способность. Использование SSL одновременно позволяет решить проблему с прохождением запросов через прокси серверы и позволяет организовать доставку данных по инициативе сервера, без специального запроса клиента (технология Server push). Дополнительное ускорение достигается за счёт сжатия HTTP-заголовков запроса и ответа.
© OpenNet