SPDY - SPDY
Набор интернет-протоколов |
---|
Уровень приложения |
Транспортный уровень |
Интернет-уровень |
Связующий слой |
SPDY (произносится как "быстрый")[1] это устаревшая открытая спецификация сетевой протокол который был разработан в основном в Google для транспортировки веб-контент.[1] SPDY манипулирует HTTP трафика, с особыми целями сокращения страница в Интернете нагрузка задержка и улучшение веб-безопасность. SPDY обеспечивает снижение задержки за счет сжатие, мультиплексирование, и приоритезация,[1] хотя это зависит от сочетания условий развертывания сети и веб-сайта.[2][3][4] Название «SPDY» - это товарный знак[5] Google и не акроним.[6]
На протяжении всего процесса основные разработчики SPDY принимали участие в разработке HTTP / 2, включая оба Майк Белше и Роберто Пеон. В феврале 2015 года Google объявил, что после недавней окончательной ратификации стандарта HTTP / 2 поддержка SPDY будет прекращена, а поддержка SPDY будет прекращена.[7] Google удалил поддержку SPDY в Гугл Хром 51. Mozilla удалил это в Fire Fox 50.[8] яблоко отказался от технологии в macOS 10.14.4 и iOS 12.2.[9]
История
По состоянию на июль 2012 г.[Обновить], группа, разрабатывающая SPDY, публично заявила, что работает над стандартизацией (доступна как Интернет-проект ).[10] Первый вариант HTTP / 2 использовал SPDY в качестве рабочей базы для черновика и редактирования своей спецификации.[11]
Реализации SPDY существуют в Хром,[12] Mozilla Firefox,[13] Опера,[14] Амазонский шелк, Internet Explorer,[15] и Сафари,[16] с реализациями для Chromium и Firefox, программное обеспечение с открытым исходным кодом.
В феврале 2015 года Google объявил о своих планах отказаться от поддержки SPDY в пользу HTTP / 2. HTTP / 2 впервые обсуждался, когда стало очевидно, что SPDY набирает популярность у разработчиков (таких как Mozilla и nginx) и демонстрирует значительные улучшения по сравнению с HTTP / 1.x. После конкурса предложений и процесса отбора SPDY был выбран в качестве основы для HTTP / 2. С тех пор был внесен ряд изменений, основанных на обсуждениях в Рабочей группе и обратной связи от разработчиков.[17]
11 февраля 2016 года Google объявил, что Chrome больше не будет поддерживать SPDY и NPN после 15 мая 2016 г. - годовщина RFC 7540.[18]
25 января 2019 года Apple объявила, что SPDY не рекомендуется использовать в пользу HTTP / 2 и будет удален в будущих выпусках.[9]
Дизайн
Цель SPDY - сократить время загрузки веб-страницы.[19] Это достигается за счет расстановки приоритетов и мультиплексирование перенос субресурсов веб-страницы, так что для каждого клиента требуется только одно соединение.[1][20] TLS шифрование почти повсеместно в реализациях SPDY, а заголовки передачи gzip - или же ВЫПУСКАТЬ -сжатый по дизайну[21] (в отличие от HTTP, где заголовки отправляются в виде удобочитаемого текста). Более того, серверы могут подсказывать или даже отправлять контент вместо ожидания отдельных запросов для каждого ресурса веб-страницы.[22]
SPDY требует использования SSL / TLS (с расширением TLS ALPN ) для безопасности, но он также поддерживает работу с обычным TCP. Требование к SSL - для безопасности и во избежание несовместимости при обмене данными через доверенное лицо.
Отношение к HTTP
SPDY не заменяет HTTP; он изменяет способ отправки HTTP-запросов и ответов по проводу.[1] Это означает, что все существующие серверные приложения могут использоваться без изменений, если установлен SPDY-совместимый уровень трансляции.
SPDY фактически является туннелем для протоколов HTTP и HTTPS. При отправке через SPDY HTTP-запросы обрабатываются, токенизируются, упрощаются и сжимаются. Например, каждая конечная точка SPDY отслеживает, какие заголовки были отправлены в прошлых запросах, и может избежать повторной отправки заголовков, которые не изменились; те, которые необходимо отправить, сжаты.
Рабочая группа IETF по HTTPbis выпустил проект HTTP / 2.[23] SPDY (draft-mbelshe-httpbis-spdy-00) был выбран в качестве отправной точки.[24][25]
Поддержка протокола
Этот раздел должен быть обновлено.Декабрь 2015 г.) ( |
Для использования в HTTPS, SPDY требуется TLS расширение Next Protocol Negotiation (NPN),[26] таким образом, поддержка браузера и сервера зависит от библиотеки HTTPS.
OpenSSL 1.0.1 или выше представляет NPN.[27] Патчи для добавления поддержки NPN также были написаны для НСС и TLSLite.[28]
SPDY планирует переключиться с NPN на Согласование протокола уровня приложений (ALPN) до конца 2014 г.[29]
Интерфейс поставщика поддержки безопасности (SSPI) от Microsoft не реализовали расширение NPN в своей реализации TLS. Это предотвратило включение SPDY в последние версии .NET Framework. Поскольку спецификация SPDY уточняется и HTTP / 2 ожидается, что он будет включать в себя реализацию SPDY, можно было ожидать, что Microsoft выпустит поддержку после HTTP / 2 дорабатывается.
Версии протокола
SPDY - это версионный протокол. В его кадрах управления есть 15 выделенных битов для указания версии протокола сеанса.[нужна цитата ]
- Версия 1: версия 1 протокола SPDY больше не используется.[30]
- Версия 2: скоро будет снята с производства. Nginx поддерживает SPDY / 2 в версиях до 1.5.10.[31] Firefox 28 и последние версии Chrome больше не поддерживают его.[32][33] OpenLiteSpeed 1.1 и выше поддерживает SPDY / 2.[34]
- Версия 3: SPDY v3 представила поддержку управления потоком, обновила словарь сжатия и удалила ненужное пространство из определенных кадров, а также другие мелкие исправления ошибок.[21] Firefox поддерживает SPDY v3 в Firefox 15.[35] OpenLiteSpeed 1.1 и выше поддерживает SPDY / 3.[34]
- Версия 3.1: SPDY v3.1 представила поддержку управления потоком на уровне сеанса и удалила кадр CREDENTIALS (и связанные коды ошибок).[36] Firefox 27 добавил поддержку SPDY 3.1.[37] OpenLiteSpeed 1.2.7 представляет поддержку SPDY / 3.1.[38] Nginx 1.5.10 поддерживает SPDY / 3.1.[39] F5 BIGIP 11.6 поддерживает SPDY / 3.1.[40]
- Версия 4.0: SPDY v4 alpha3 более точно соответствует проекту HTTP / 2; он имеет новое управление потоком и коды ошибок, унифицированные с проектом HTTP / 2.[41]
Поддержка и использование клиента (браузера)
- Гугл Хром /Хром.[42][43] Сеансы SPDY в Chrome можно проверить через URI:
chrome: // net-internals / # events & q = type: SPDY_SESSION% 20is: active
. Существует переключатель командной строки для Google Chrome (--включить-websocket-over-spdy
), что дает возможность ранней экспериментальной реализации WebSocket через SPDY.[44] Функциональность протокола SPDY может быть (де) активирована переключением настройки «Включить SPDY / 4» на локальном компьютере.хром: // флаги
страница. Ожидается, что Chromium откажется от поддержки SPDY и Next Protocol Negotiation в начале 2016 года в пользу HTTP / 2 и ALPN.[45] Начиная с версии 40.x в феврале 2015 года Chrome уже отказался от поддержки SPDY / 3 и в дальнейшем будет поддерживать только SPDY / 3.1. Это привело к тому, что веб-сайты Apache не поддерживали SPDY при посещении из Google Chrome.[46] - Fire Fox поддерживает SPDY 2 с версии 11 и включен по умолчанию с 13 и новее. (Также SeaMonkey версия 2.8+.) Функциональность протокола SPDY может быть (де) активирована переключением
network.http.spdy.enabled
переменная вabout: config
.[13] Firefox 15 добавил поддержку SPDY 3.[35] Firefox 27 добавил поддержку SPDY 3.1.[37] Firefox 28 удалил поддержку SPDY 2.[32]о: сети
(или надстройка индикатора HTTP / 2 и SPDY)[47] показывает, использует ли веб-сайт SPDY. - Браузер Opera добавлена поддержка SPDY с версии 12.10.[48]
- Internet Explorer 11 добавлена поддержка SPDY версии 3,[49][50] но не для версии Windows 7.[51] Проблема, с которой сталкиваются некоторые пользователи Windows 8.1 и Internet Explorer 11, заключается в том, что при начальной загрузке Google сообщает «Страница не найдена», но при перезагрузке все в порядке. Одно из исправлений - отключить SPDY / 3 в «Свойства обозревателя»> «Дополнительно».[52] После версии 11 IE откажется от поддержки SPDY, поскольку он примет HTTP / 2.[53]
- Amazon Шелк браузер для Kindle Fire использует SPDY протокол общаться со своими EC2 сервис для рендеринга веб-страниц.[54]
- Сафари 8 и сторонних приложений в OS X 10.10 и iOS 8 добавляет поддержку SPDY 2, 3 и 3.1.[55]
Поддержка и использование сервера
По состоянию на июль 2016 г.[Обновить], примерно 7,1% всех веб-сайтов поддерживают SPDY.[56] Установлены версии двух самых популярных веб-серверов, NGINX и Apache,[57] являются основными поставщиками SPDY-трафика.[58] хотя в последней версии NGINX теперь удалена поддержка SPDY.[59] Для сравнения, уровень принятия нового протокола HTTP / 2 составляет 8,1%, который по состоянию на 2016 г.[Обновить] обогнал принятие SPDY.[60]
Некоторые сервисы Google (например, поиск Гугл, Gmail, и другие SSL -enabled services) используйте SPDY, если он доступен.[61] Объявления Google также обслуживаются с серверов с поддержкой SPDY.[62]
Краткая история поддержки SPDY среди основных веб-игроков:
- В ноябре 2009 г. Google объявил SPDY как внутренний проект по увеличению скорости Интернета.[63]
- В сентябре 2010 г. Google выпускает SPDY в Chrome для всех версий Chrome 6.[64]
- В январе 2011 г. Google развернул SPDY во всех сервисах Google.[65]
- В марте 2012 г. Twitter включил SPDY на своих серверах, что в то время сделало его вторым по величине сайтом, который использует SPDY.[66]
- В марте 2012 г. Веб-сервер Jetty объявила о поддержке SPDY в версии 7.6.2 и 8.1.2,[67] в то время как другие проекты с открытым исходным кодом работали над реализацией поддержки SPDY, например node.js,[68][69] Apache (mod_spdy),[70] локон[71] и nginx.[72]
- В апреле 2012 года Google начал предоставлять пакеты SPDY для серверов Apache, что привело к тому, что некоторые небольшие веб-сайты начали предоставлять поддержку SPDY.[73]
- В мае 2012 г. F5 Сети объявила о поддержке SPDY в своих контроллерах доставки приложений BIG-IP.[74]
- В июне 2012 г. NGINX, Inc. объявила о поддержке SPDY в веб-сервере с открытым исходным кодом Nginx.[75]
- В июле 2012 г. Facebook объявил о планах реализации SPDY.[76] К марту 2013 года SPDY была внедрена на некоторых их публичных веб-серверах.[77]
- В августе 2012 г. WordPress.com объявили о поддержке SPDY (с использованием nginx) во всех своих размещенных блогах.[78]
- В июне 2013 года LiteSpeed Technologies объявила о поддержке SPDY / 2 и SPDY / 3 на OpenLiteSpeed, своем HTTP-сервере с открытым исходным кодом.[34] Поддержка SPDY / 3.1 была объявлена в ноябре 2013 года.[38]
- В январе 2014 г. Synology объявленный SPDY включен в новый DSM 5.0.[79]
- В феврале 2014 г. CloudFlare с помощью nginx объявила об автоматической поддержке SPDY v3.1 для всех клиентов с сертификатами SSL / TLS.[80]
- В мае 2014 г. MaxCDN Используя nginx, объявила о поддержке SPDY v3.1 через настройки Pull Zone и их API.[81]
- В октябре 2014 г. Yahoo показывает поддержку SPDY на домашней странице Yahoo - www.yahoo.com [82]
- В сентябре 2015 года последняя версия веб-сервера Nginx отказалась от поддержки SPDY в пользу HTTP / 2.[59]
- В мае 2016 г. CloudFlare выпускает патчи для веб-сервера Nginx, патчи одновременно поддерживают HTTP / 2 и SPDY.[83]
По данным W3Techs, по состоянию на июль 2016 г.[Обновить], большинство веб-сайтов с поддержкой SPDY используют nginx, а веб-сервер LiteSpeed занимает второе место.[58]
Смотрите также
- Конвейерная обработка HTTP
- Постоянное соединение HTTP
- Скорость HTTP + Мобильность
- QUIC - Еще один сетевой протокол транспортного уровня от Google. Базовый протокол HTTP / 3.[84]
- Оптимизированный протокол для передачи изображений клиентам (ОПТИК)
Рекомендации
- ^ а б c d е «SPDY: экспериментальный протокол для более быстрого Интернета». Документация разработчика Chromium. Получено 2009-11-13.
- ^ Эльхатиб, Йехиа; Тайсон, Гарет; Вельцль, Майкл (2014). Сетевая конференция IFIP 2014 г.. С. 1–9. CiteSeerX 10.1.1.698.2343. Дои:10.1109 / IFIPNetworking.2014.6857089. ISBN 978-3-901882-58-6. S2CID 13841087.
- ^ Поджарный, Гай. "Не так SPDY, как вы думали". Архивировано из оригинал 12 октября 2012 г.. Получено 12 октября 2012.
- ^ Абдельсалам, Ахмед; Целандрони, Недо; Коллина, Маттео; Cruickshank, Хайтам; Фэрхерст, Горри; Ферро, Эрина; Надо, Альберто; Луглио, Микеле; Розети, Чезаре (01.07.2015). «Глубокий анализ будущих веб-технологий и протоколов в широкополосных спутниковых сетях GEO». Международный журнал спутниковой связи и сетей. 33 (5): 451–472. Дои:10.1002 / сб.1120. ISSN 1542-0981.
- ^ «Разрешения: наши товарные знаки». Google. Получено 2015-02-23.
- ^ «Часто задаваемые вопросы SPDY». Проекты Chromium. Получено 2015-02-23.
Мы хотели имя, которое отражает скорость. SPDY, произносится как «SPeeDY», фиксирует это, а также показывает, как сжатие может помочь повысить скорость.
- ^ Крис Бенцель и Бенце Беки (9 февраля 2015 г.). «Привет, HTTP / 2, прощай, SPDY».
- ^ «1287132 - Отключить SPDY 3.1». bugzilla.mozilla.org.
- ^ а б Маршалл, Скотт (2019-01-25). «Удаление поддержки устаревшего протокола SPDY». WebKit. Получено 2019-03-07.
- ^ «Протокол SPDY на IETF». Получено 2012-02-08.
- ^ Ноттингем, Марк. «Первый черновик HTTP / 2». Список рассылки рабочей группы HTTP. Получено 2 декабря 2012.
- ^ "SPDY на серверах Google?". Получено 2012-02-28.
- ^ а б «Ошибка Mozilla 528288 - реализация протокола SPDY».
- ^ «Opera: Встроенная поддержка протокола SPDY». Получено 2012-11-06.
- ^ "IE11 SPDY / 3 подтвержден". 2013-06-25. Получено 2013-06-25.
- ^ «Apple - Информация для прессы - Apple представляет OS X Yosemite». 2 июня 2014 г.. Получено 2014-06-02.
- ^ «HTTP / 2: часто задаваемые вопросы». http2.github.io.
- ^ Беки, Бенце (11 февраля 2016 г.). «Переход с SPDY на HTTP / 2». Получено 12 февраля, 2016.
- ^ «Интернет в 2 раза быстрее». Официальный блог Google Chromium. 2009-11-11. Получено 2009-11-13.
- ^ Ильич ван Бейнум (12 ноября 2009 г.). "SPDY: Google хочет ускорить работу Интернета, отказавшись от HTTP". Ars Technica. Получено 2009-11-13.
- ^ а б «Протокол SPDY - Проект 3». Получено 25 августа 2012.
- ^ Мирко Линднер (13 ноября 2009 г.). "Google stellt HTTP-Alternative SPDY vor" (на немецком). Получено 2011-10-21.
- ^ Ноттингем, Марк. "Что будет дальше с HTTP". Получено 2012-03-31.
- ^ "Fwd: [new-work] Обзор WG: Протокол передачи гипертекста Bis (httpbis)".
- ^ «Рабочая группа HTTPbis начинает рассматривать HTTP / 2.0». InfoQ. 2012-04-28. Получено 2012-08-09.
- ^ Протокол NPN и объяснение необходимости туннелирования SPDY через HTTPS.
- ^ Список изменений OpenSSL 1.0.1.
- ^ Согласование следующего протокола TLS. Раздел: Реализации В архиве 2012-07-30 в Wayback Machine.
- ^ Адам Лэнгли. «Императорский фиолетовый».
- ^ Протокол SPDY - Проект 2: "В настоящее время единственная допустимая строка -" spdy / 2 "(spdy / 1 больше нигде не реализован)".
- ^ "Модуль ngx_http_spdy_module". Nginx.org. Получено 2014-06-03.
- ^ а б «Примечания к бета-версии Firefox - ПК». 2014-02-06. Получено 2014-02-07.
- ^ «Проблема 303957 - хром. Обеспечение поддержки Chrome только SPDY / 3 и более поздних версий. Проект с открытым исходным кодом, помогающий продвигать Интернет вперед. - Хостинг проектов Google». 2013-10-03. Получено 2014-02-19.
- ^ а б c OpenLiteSpeed 1.1 (с SPDY!) Проверено 12 августа 2013.
- ^ а б «Firefox 15 - Примечания к выпуску». Получено 3 сентября 2012.
- ^ «Протокол SPDY - Проект 3.1». Получено 17 ноября 2013.
- ^ а б «Рабочий стол Firefox Notes». 2014-02-04. Получено 2014-02-05.
- ^ а б OpenLiteSpeed 1-й веб-сервер с поддержкой SPDY / 3.1! Проверено 10 января 2014.
- ^ NGINX объявляет о поддержке SPDY / 3.1 Проверено 4 февраля 2014.
- ^ Примечания к выпуску F5 Bigip 11.6.0 Проверено 10 марта 2015.
- ^ «Предстоящие изменения SPDY / 4 для большей синхронизации с черновиком HTTP / 2». Получено 27 февраля 2014.
- ^ Реализация клиента Chromium SPDY.
- ^ Chromium: примеры прокси SPDY.
- ^ Список переключателей командной строки Chromium.
- ^ Бенцель, Крис; Беки, Бенце (9 февраля 2015 г.). «Привет, HTTP / 2, прощай, SPDY». Блог Chromium. Получено 9 февраля 2015.
- ^ "Группы Google". groups.google.com.
- ^ «Индикатор HTTP / 2 и SPDY». Дополнения для Firefox. Mozilla. 2014-11-26. Получено 2015-02-12.
- ^ Дэвид Хоннеффер, специалист по документации. "Opera: История изменений Opera 12.10".
- ^ «WebGL, SPDY / 3, новые инструменты разработчика и многое другое подтверждено для IE11 в Win 8.1». Новости Microsoft.
- ^ «Изменения IE11». Microsoft.
- ^ «Microsoft выпускает Internet Explorer 11 для Windows 7». 2013-11-07.
- ^ «Google не загружается в первый раз в IE11 через веб-прокси в Windows 8.1? Отключите поддержку SPDY. | Злой техник». Angrytechnician.wordpress.com. 2014-01-16. Получено 2014-02-19.
- ^ Роб Трэйс; Дэвид Уолп (8 октября 2014 г.). "HTTP / 2: долгожданное продолжение". Microsoft. Получено 8 октября 2014.
- ^ Райан Пол (28 сентября 2011 г.). «Веб-браузер Amazon Silk добавляет новый поворот к старой идее». Получено 2011-10-21.
- ^ «Что нового в Foundation Networking» (PDF). Apple Inc.. Получено 2014-07-07.
- ^ «Использование SPDY для веб-сайтов». w3techs.com. Получено 2016-07-26.
- ^ «Использование веб-серверов для веб-сайтов». w3techs.com. Получено 2016-07-26.
- ^ а б «HTTP / 2 поддерживается в NGINX 1.9.5 с открытым исходным кодом - NGINX». 22 сентября 2015.
- ^ «Использование HTTP / 2 для веб-сайтов». w3techs.com. Получено 2016-07-26.
- ^ Список рассылки spdy-dev: SPDY на серверах Google?.
- ^ Google ускоряет загрузку веб-страниц с помощью протокола SPDY - Облачные вычисления - Новости и обзоры. eWeek.com (20.06.2011). Проверено 21 ноября 2013.
- ^ «Блог исследований: Интернет в 2 раза быстрее». Блог исследований.
- ^ Идо Сафрути (15.06.2011). «От быстрого к SPDY - Velocity 2011».
- ^ "Группы Google".
- ^ Twitter принимает SPDY.
- ^ Функция пристани SPDY.
- ^ "indutny / node-spdy · GitHub". Github.com. Получено 2012-05-10.
- ^ Федор Индутный (24.01.2012). "Что такое $% @! SPDY - blog.nodejitsu.com - масштабирование приложений node.js по одному обратному вызову за раз". blog.nodejitsu.com. Получено 2012-05-10.
- ^ "mod-spdy - модуль Apache SPDY - хостинг проектов Google". Получено 2012-05-10.
- ^ "libspdy". daniel.haxx.se. 2011-10-18. Получено 2012-05-10.
- ^ «Добро пожаловать в Twitter - войдите или зарегистрируйтесь».
- ^ "mod_spdy - mod_spdy - Разработчики Google". Получено 2012-05-10.
- ^ F5 помогает организациям улучшить взаимодействие с пользователем и упростить управление с помощью первого интегрированного шлюза SPDY | О F5 | F5 Сети В архиве 2012-06-11 в Wayback Machine. F5.com (08.05.2012). Проверено 21 ноября 2013.
- ^ «Объявление о реализации проекта 2 SPDY на nginx». Nginx. 2012-06-15. Получено 2012-06-16.
- ^ Бивер, Дуг. «Выражение интереса HTTP2». W3C. Получено 15 июля 2012.
- ^ Финли, Клинт. "Facebook делает себя более SPDY". Проводной. Получено 18 марта 2013.
- ^ "Только что включен #SPDY для всех http://WordPress.com/ сайтов, на которых размещен хостинг". 2012-08-28. Получено 2012-08-28. Внешняя ссылка в
| название =
(помощь) - ^ [1] DSM 5.0 бета
- ^ Джон Грэм-Камминг (17 февраля 2014 г.). «Будьте в курсе последних протоколов: SPDY / 3.1 | Блог CloudFlare». Blog.cloudflare.com. Получено 2014-02-19.
- ^ Джастин Дорфман. "Сейчас обслуживается: SPDY 3.1". blog.maxcdn.com. Получено 2014-05-20.
- ^ [2] Поддержка SPDY со стороны Yahoo на www.yahoo.com
- ^ «Открытый исходный код нашего кода NGINX HTTP / 2 + SPDY». 2016-03-13. Получено 2016-08-05.
- ^ Гедин, Алессандро; Лалкака, Рустам (26 сентября 2019 г.). «HTTP / 3: прошлое, настоящее и будущее». Блог Cloudflare. Получено 16 января 2020.