SPDY (произносится как «быстрый») является устаревшей открытой спецификацией сетевой протокол, разработанный в первую очередь в Google для передачи веб-контента. SPDY управляет трафиком HTTP с конкретными целями уменьшения загрузки веб-страницы задержки и повышения веб-безопасности. SPDY обеспечивает снижение задержки за счет сжатия, мультиплексирования и приоритизации, хотя это зависит от сочетания условий развертывания сети и веб-сайта. Название SPDY является товарным знаком Google и не является аббревиатурой.
На протяжении всего процесса основные разработчики SPDY принимали участие в разработке HTTP / 2, в том числе Майк Белше и Роберто Пеон. В феврале 2015 года Google объявил, что после недавней окончательной ратификации стандарта HTTP / 2 поддержка SPDY будет прекращена, а поддержка SPDY будет прекращена. Google удалил поддержку SPDY в Google Chrome 51. Mozilla удалила ее в Firefox 50. Apple исключила технологию в macOS 10.14.4 и iOS 12.2.
По состоянию на июль 2012 года группа, разрабатывающая SPDY, публично заявила, что она работает над стандартизацией (доступно как an Интернет-проект ). Первый черновик HTTP / 2 использовал SPDY в качестве рабочей основы для черновика и редактирования его спецификации.
Реализации SPDY существуют в Chromium, Mozilla Firefox, Opera, Amazon Silk, Internet Explorer и Safari с реализациями для Chromium и Firefox ПО с открытым исходным кодом.
В феврале 2015 года Google объявил о своих планах отказаться от поддержки SPDY в пользу HTTP / 2. HTTP / 2 впервые обсуждался, когда стало очевидно, что SPDY набирает популярность у разработчиков (таких как Mozilla и nginx) и демонстрирует значительные улучшения по сравнению с HTTP / 1.x. После конкурса предложений и процесса отбора SPDY был выбран в качестве основы для HTTP / 2. С тех пор был внесен ряд изменений, основанных на обсуждениях в рабочей группе и отзывах разработчиков.
11 февраля 2016 года Google объявил, что Chrome больше не будет поддерживать SPDY и NPN после 15 мая 2016 года, годовщины RFC 7540.
25 января 2019 года Apple объявила, что SPDY не рекомендуется в пользу HTTP / 2 и будет удален в будущих выпусках.
Цель SPDY - сократить время загрузки веб-страницы. Это достигается за счет приоритизации и мультиплексирования передачи субресурсов веб-страниц, так что требуется только одно соединение для каждого клиента. Шифрование TLS почти повсеместно в реализациях SPDY, а заголовки передачи gzip - или DEFLATE - сжатие по дизайну (в отличие от HTTP, где заголовки отправляются в виде текста, удобочитаемого человеком). Кроме того, серверы могут подсказывать или даже отправлять контент вместо ожидания отдельных запросов для каждого ресурса веб-страницы.
SPDY требует использования SSL / TLS (с расширением TLS ALPN ) для безопасности, но он также поддерживает работу с обычным TCP. SSL требуется для безопасности и во избежание несовместимости при обмене данными через прокси-сервер.
SPDY не заменяет HTTP; он изменяет способ отправки HTTP-запросов и ответов по сети. Это означает, что все существующие серверные приложения могут использоваться без изменений, если установлен SPDY-совместимый уровень трансляции.
SPDY - это фактически туннель для протоколов HTTP и HTTPS. При отправке через SPDY HTTP-запросы обрабатываются, токенизируются, упрощаются и сжимаются. Например, каждая конечная точка SPDY отслеживает, какие заголовки были отправлены в прошлых запросах, и может избежать повторной отправки заголовков, которые не изменились; те, которые необходимо отправить, сжаты.
Рабочая группа IETF по HTTPbis выпустила черновик HTTP / 2. SPDY (draft-mbelshe-httpbis-spdy-00) был выбран в качестве отправной точки.
Для использования в HTTPS SPDY требуется TLS extension Next Protocol Negotiation (NPN), поэтому поддержка браузера и сервера зависит от библиотеки HTTPS.
OpenSSL 1.0.1 или выше представляет NPN. Патчи для добавления поддержки NPN также были написаны для NSS и TLSLite.
SPDY планирует переключиться с NPN на Application-Layer Protocol Negotiation (ALPN) до конец 2014 года.
Интерфейс поставщика поддержки безопасности (SSPI) от Microsoft не реализовал расширение NPN в своей реализации TLS. Это предотвратило включение SPDY в последние версии.NET Framework. Поскольку спецификация SPDY уточняется и ожидается, что HTTP / 2 будет включать реализацию SPDY, можно ожидать, что Microsoft выпустит поддержку после того, как HTTP / 2 будет завершен.
SPDY - это протокол с поддержкой версий. В его кадрах управления имеется 15 выделенных битов для указания версии протокола сеанса.
chrome: // net-internals / # events q = type: SPDY_SESSION% 20is: active
. Для Google Chrome имеется переключатель командной строки (- enable-websocket-over-spdy
), который позволяет раннюю экспериментальную реализацию WebSocket через SPDY. Функциональность протокола SPDY можно (де) активировать, переключив настройку «Включить SPDY / 4» на локальной странице chrome: // flags
. Ожидается, что Chromium откажется от поддержки SPDY и Next Protocol Negotiation в начале 2016 года в пользу HTTP / 2 и ALPN. Начиная с версии 40.x в феврале 2015 года Chrome уже отказался от поддержки SPDY / 3 и в дальнейшем будет поддерживать только SPDY / 3.1. Это привело к тому, что веб-сайты Apache не поддерживали SPDY при посещении из Google Chrome.network.http.spdy.enabled
в о: конфигурация
. Firefox 15 добавил поддержку SPDY 3. Firefox 27 добавил поддержку SPDY 3.1. Firefox 28 удалил поддержку SPDY 2. about: network
(или надстройка индикатора HTTP / 2 и SPDY) показывает, использует ли веб-сайт SPDY.По состоянию на июль 2016 года примерно 7,1% всех веб-сайтов поддерживают SPDY. Установленные версии двух самых популярных веб-серверов, NGINX и Apache, являются основными поставщиками трафика SPDY. хотя в последней версии NGINX теперь удалена поддержка SPDY. Для сравнения, уровень принятия нового протокола HTTP / 2 составляет 8,1%, который по состоянию на 2016 г. обогнал принятие SPDY.
Некоторые службы Google (например, поиск Google, Gmail и другие службы с поддержкой SSL ) используют SPDY, если это возможно. Рекламные объявления Google также обслуживаются с серверов с поддержкой SPDY.
Краткая история поддержки SPDY среди основных веб-игроков:
Согласно W3Techs, по состоянию на июль 2016 года большинство веб-сайтов с поддержкой SPDY используют nginx, на втором месте - веб-сервер LiteSpeed.