Открыть сервис

SPDY

SPDY — это экспериментальный сетевой протокол прикладного уровня, разработанный компанией Google для ускорения передачи данных в вебе. Он был предложен как альтернатива протоколу HTTP/1.1 и стал основой для создания современного стандарта HTTP/2. Название SPDY расшифровывается как «speedy» («быстрый», намеренно искажённое написание), что отражает его основную цель — снижение задержек при загрузке веб-страниц.

История

Разработка SPDY началась в 2009 году в недрах компании Google. Основной причиной стало недовольство инженеров корпорации ограничениями протокола HTTP/1.1, который к тому времени уже более десяти лет оставался доминирующим стандартом передачи гипертекста. HTTP/1.1 имел ряд фундаментальных проблем, включая последовательную обработку запросов (так называемое «блокирование головы очереди» или head-of-line blocking), отсутствие сжатия заголовков и избыточность служебной информации. В результате при загрузке сложных страниц с множеством ресурсов (изображения, скрипты, стили) возникали значительные задержки.

Первый публичный анонс SPDY состоялся в 2009 году, а в 2010 году протокол начал тестироваться в браузере Google Chrome. Изначально он рассматривался как экспериментальная технология, призванная проверить гипотезы о том, как можно устранить слабые места HTTP/1.1 без полного переписывания стека протоколов.

Ключевым моментом в истории SPDY стало его влияние на стандартизацию HTTP/2. В 2012 году рабочая группа IETF (Internet Engineering Task Force) начала работу над новой версией HTTP, взяв за основу именно SPDY. После многочисленных обсуждений и доработок в мае 2015 года был опубликован стандарт HTTP/2 (RFC 7540), который в значительной степени базировался на SPDY, но с рядом улучшений и изменений.

Архитектура и ключевые особенности

SPDY работал поверх транспортного протокола TCP (Transmission Control Protocol) и использовал порт 443 по умолчанию, как и HTTPS. Он не заменял полностью HTTP, а представлял собой слой управления сессией, который инкапсулировал HTTP-запросы и ответы. Это позволяло браузерам и серверам, поддерживающим SPDY, взаимодействовать с теми, кто использует HTTP/1.1, через механизм согласования протокола (обычно с помощью расширения TLS — Next Protocol Negotiation).

Основные технические характеристики и отличия от HTTP/1.1 включали:

Сравнение с HTTP/1.1 и HTTP/2

Протокол SPDY стал важным переходным этапом между устаревшим HTTP/1.1 и современным HTTP/2. Основные различия и сходства:

ХарактеристикаHTTP/1.1SPDY (v3.1)HTTP/2
МультиплексированиеНет (одно соединение — один запрос)ДаДа
Сжатие заголовковОпционально (не используется)Да (DEFLATE)Да (HPACK — более эффективный алгоритм)
Server PushНетДа, но реализация сложнаДа (стандартизирован)
ПриоритизацияНет (зависит от реализации)Да (81 приоритет)Да (31 приоритет)
ТранспортTCP (обычно порт 80)TCP (только поверх TLS)TCP (в основном поверх TLS)
БезопасностьОпционально (HTTPS)Требует TLSВ основном требует TLS (рекомендуется)
СтандартизацияIETF RFC 2616 (1999)Экспериментальный (Google)IETF RFC 7540 (2015)

Как видно из таблицы, SPDY во многом предвосхитил HTTP/2, но был более строгим: он требовал обязательного использования TLS (шифрования), что вызывало критику за повышение накладных расходов. HTTP/2 же допускал (хотя и не рекомендовал) работу без шифрования, что делало его более гибким. Также алгоритм сжатия заголовков (HPACK) в HTTP/2 был переработан для повышения устойчивости к атакам, связанным с компрессией (например, BREACH).

Применение и распространение

SPDY был разработан и активно внедрялся в инфраструктуру самой компании Google. Начиная с 2010 года, все сервисы Google (Gmail, YouTube, Поиск, Google Maps) и браузер Google Chrome поддерживали этот протокол. Постепенно к SPDY присоединились и другие крупные компании:

Несмотря на преимущества, широкое распространение SPDY в вебе было относительно небольшим. Основные причины:

  1. Требование TLS: Для работы SPDY требовалась настройка HTTPS, что само по себе было технически сложнее и требовало сертификата.
  2. Сложность реализации: Реализация SPDY на сервере и в клиенте была более сложной по сравнению с HTTP/1.1.
  3. Выход HTTP/2: Появление стандарта HTTP/2, который был более гибким и стандартизированным, сделало SPDY избыточным. Компании, которые уже внедрили SPDY, начали мигрировать на HTTP/2.

В 2015 году, после утверждения стандарта HTTP/2, Google объявил о завершении поддержки SPDY в своей экосистеме. В начале 2016 года протокол был официально удалён из браузера Chrome, а серверные реализации постепенно перестали поддерживаться. Таким образом, SPDY просуществовал как активный протокол всего около 6-7 лет.

Наследие и влияние

Хотя сам протокол SPDY больше не используется, его влияние на веб-технологии огромно. Он продемонстрировал практическую возможность решения проблем HTTP/1.1 и стал катализатором для разработки HTTP/2. Многие идеи, заложенные в SPDY (мультиплексирование, сжатие заголовков, приоритизация), были перенесены в HTTP/2, хотя и в усовершенствованном виде.

SPDY также сыграл важную роль в популяризации шифрования трафика в вебе (HTTPS). Требование использования TLS сделало протокол более безопасным и подтолкнуло владельцев сайтов к переходу на защищённое соединение. Сегодня технологии, заложенные в SPDY, лежат в основе работы современного веба, где HTTP/2 является стандартом для большинства крупных сайтов и сервисов, обеспечивая быструю и эффективную загрузку контента.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →