SPDY

редактировать
Экспериментальная двоичная кодировка Google для HTTP

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.

Содержание
  • 1 История
  • 2 Дизайн
  • 3 Связь с HTTP
  • 4 Поддержка протокола
  • 5 Версии протокола
  • 6 Поддержка и использование клиента (браузера)
  • 7 Сервер поддержка и использование
  • 8 См. также
  • 9 Ссылки
  • 10 Внешние ссылки
История

По состоянию на июль 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 требуется для безопасности и во избежание несовместимости при обмене данными через прокси-сервер.

Связь с HTTP

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 выделенных битов для указания версии протокола сеанса.

  • Версия 1: версия 1 протокола SPDY больше не используется.
  • Версия 2: скоро будет прекращена. Nginx поддерживает SPDY / 2 в версиях до 1.5.10. Firefox 28 и последние версии Chrome больше не поддерживают его. OpenLiteSpeed ​​1.1 и выше поддерживает SPDY / 2.
  • Версия 3: SPDY v3 представила поддержку управления потоком, обновила словарь сжатия и удалила лишнее пространство из определенных кадров, а также исправила другие незначительные ошибки. Firefox поддерживает SPDY v3 в Firefox 15. OpenLiteSpeed ​​1.1 и выше поддерживает SPDY / 3.
  • Версия 3.1: SPDY v3.1 представила поддержку управления потоком на уровне сеанса и удалила фрейм CREDENTIALS (и связанные коды ошибок). Firefox 27 добавил поддержку SPDY 3.1. OpenLiteSpeed ​​1.2.7 представляет поддержку SPDY / 3.1. Nginx 1.5.10 поддерживает SPDY / 3.1. F5 BIGIP 11.6 поддерживает SPDY / 3.1.
  • Версия 4.0: SPDY v4 alpha3 более тесно согласован с проектом HTTP / 2; он имеет новое управление потоком и коды ошибок, унифицированные с проектом HTTP / 2.
Поддержка и использование клиента (браузера)
  • Google Chrome / Chromium. Сеансы SPDY в Chrome можно проверить с помощью URI : 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.
  • Firefox поддерживает SPDY 2 с версии 11 и включен по умолчанию с 13 и более поздних версий. (Также SeaMonkey версии 2.8+.) Функциональность протокола SPDY может быть (де) активирована путем переключения переменной network.http.spdy.enabled в о: конфигурация . Firefox 15 добавил поддержку SPDY 3. Firefox 27 добавил поддержку SPDY 3.1. Firefox 28 удалил поддержку SPDY 2. about: network(или надстройка индикатора HTTP / 2 и SPDY) показывает, использует ли веб-сайт SPDY.
  • Браузер Opera добавил поддержку SPDY начиная с версии 12.10.
  • Internet Explorer 11 добавлена ​​поддержка SPDY версии 3, но не для версии Windows 7. Проблема, с которой сталкиваются некоторые пользователи Windows 8.1 и Internet Explorer 11, заключается в том, что при начальной загрузке Google сообщает «Страница не найдена», но при перезагрузке все в порядке. Одно из исправлений - отключить SPDY / 3 в «Свойства обозревателя»>«Дополнительно». После версии 11 IE откажется от поддержки SPDY, поскольку он будет использовать браузер HTTP / 2.
  • Amazon Silk для Kindle Fire, использующий SPDY . протокол для связи с их службой EC2 для рендеринга веб-страниц.
  • Safari 8 и сторонних приложений в OS X 10.10 и iOS 8 добавляет поддержку SPDY 2, 3 и 3.1.
Поддержка и использование сервера

По состоянию на июль 2016 года примерно 7,1% всех веб-сайтов поддерживают SPDY. Установленные версии двух самых популярных веб-серверов, NGINX и Apache, являются основными поставщиками трафика SPDY. хотя в последней версии NGINX теперь удалена поддержка SPDY. Для сравнения, уровень принятия нового протокола HTTP / 2 составляет 8,1%, который по состоянию на 2016 г. обогнал принятие SPDY.

Некоторые службы Google (например, поиск Google, Gmail и другие службы с поддержкой SSL ) используют SPDY, если это возможно. Рекламные объявления Google также обслуживаются с серверов с поддержкой SPDY.

Краткая история поддержки SPDY среди основных веб-игроков:

  • В ноябре 2009 года Google объявил SPDY как внутренний проект для увеличения скорость Интернета.
  • В сентябре 2010 года Google выпускает SPDY в Chrome для всех версий Chrome 6.
  • В январе 2011 года Google развернул SPDY во всех сервисах Google.
  • В марте 2012 года Twitter включил SPDY на своих серверах, что в то время сделало его вторым по величине сайтом, который, как известно, развертывает SPDY.
  • В марте 2012 года открытый исходный код Jetty Web Server объявил о поддержке SPDY в версиях 7.6.2 и 8.1.2, в то время как другие проекты с открытым исходным кодом работали над реализацией поддержки SPDY, например node.js, Apache. (mod_spdy), curl и nginx.
  • В апреле 2012 года Google начал предоставлять пакеты SPDY для серверов Apache, что привело к тому, что некоторые небольшие веб-сайты предоставили поддержку SPDY.
  • В мае 2012 года F5 Networks объявила о поддержке SPDY в своем Контроллеры доставки приложений BIG-IP.
  • В июне 2012 года NGINX, Inc. объявила о поддержке SPDY на веб-сервере с открытым исходным кодом Nginx.
  • В июле 2012 года Facebook объявил о планах внедрения SPDY. К марту 2013 года SPDY был внедрен на некоторых из их общедоступных веб-серверов.
  • В августе 2012 года WordPress.com объявил о поддержке SPDY (с использованием nginx) во всех своих размещенных блогах.
  • В июне 2013 года LiteSpeed ​​Technologies объявила о поддержке SPDY / 2 и SPDY / 3 на OpenLiteSpeed, своем HTTP-сервере с открытым исходным кодом. Поддержка SPDY / 3.1 была объявлена ​​в ноябре 2013 года.
  • В январе 2014 года Synology объявила, что SPDY включена в новый DSM 5.0.
  • В феврале 2014 года CloudFlare с помощью nginx объявила об автоматической поддержке SPDY v3.1 для всех клиентов с сертификатами SSL / TLS.
  • В мае 2014 года с помощью nginx объявили о поддержке SPDY v3.1 через настройки зоны извлечения клиентов и их API.
  • В октябре 2014 года Yahoo демонстрирует поддержку SPDY на домашней странице Yahoo - www.yahoo.com
  • В сентябре 2015 года последняя версия веб-сайта Nginx сервер отказался от поддержки SPDY в пользу HTTP / 2
  • В мае 2016 года CloudFlare выпускает исправления для веб-сервера Nginx, которые одновременно поддерживают HTTP / 2 и SPDY.

Согласно W3Techs, по состоянию на июль 2016 года большинство веб-сайтов с поддержкой SPDY используют nginx, на втором месте - веб-сервер LiteSpeed.

См. также
  • значок Интернет-портал
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-06 04:06:21
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте