» » Обзор протокола SPDY

Обзор протокола SPDY

Обзор протокола SPDYВ последнее время возникла путаница с тем, какой из браузеров считать самым распространенным в мире, тем не менее, даже в худшем для иллюстрации примере, веб-обозреватели, занимающие сейчас 2 и 3 место, уже поддерживают протокол SPDY, который со временем может прийти на замену HTTP. Другими словами, уже сейчас около половины пользователей Интернета используют браузер, поддерживающий самый новый стандарт передачи данных, на который сайты только-только начинают переходить.
Обзор протокола SPDY

Протокол HTTP 1.0 появился практически одновременно с Интернетом в его современном виде, в далеком 1996 году. Год спустя была утверждена обновленная версия HTTP 1.1, и с тех пор, в течение 15 лет, возможно, самое значимое изобретение человечества базируется на технологии, которую по всем критериям следует назвать устаревшей.
SPDY также не является новой разработкой, однако возраст этого стандарта исчисляется лишь несколькими годами. В Google начали работу над ним около двух с половиной лет назад.
Изначально поддержка нового стандарта появилась именно в Chrome, а чуть позже о его поддержке заявили и в Mozilla, внедрив SPDY в Firefox 11. Остальные компании пока молчат, но почти нет сомнений в том, что Opera Software, как один из самых прогрессивных разработчиков, вскоре присоединится к Google и Mozilla, а вот Apple и Microsoft, наоборот, могут начать свои закулисные игры. Особенно это касается Microsoft, поскольку в Редмонде разрабатывают собственный протокол Microsoft S+M (Microsoft Speed + Mobility), во многих аспектах напоминающий SPDY и точно так же претендующий на то, чтобы стать основой протокола HTTP 2.0.
Как пишут на официальной странице протокола, главная цель SPDY заключается в снижении задержек передачи пакетов, что должно привести к более быстрой загрузке и рендерингу страниц. Демонстрируемые протоколом результаты постоянно улучшаются, и если около года назад прямое сравнение скорости HTTP и SPDY показывало 30% разницу в производительности, то сейчас говорят уже о 64%, хотя  изначально ставилась более скромная цель – 50% сокращение задержек.
 
Чтобы понять, почему HTTP тормозит развитие Интернета и требует замены, необходимо перечислить недостатки этого протокола:
• HTTP отправляет лишь один запрос по каналу соединения. Браузеры со временем научились обходить это ограничение и сейчас могут использовать сразу несколько параллельных соединений (как правило, 6 штук), однако это не решает проблему полностью.
• Пока браузер на компьютере пользователя не отправит запрос, сервер не сможет выслать необходимые данные, даже если известно, что они необходимы на клиентской стороне.
• Заголовки запросов и ответов в HTTP не сжимаются, что ведет к увеличению задержек, особенно заметных на медленных соединениях. Размер заголовка,как правило, находится в пределах от 0.2 до 2 КБ, при типичном значении в 0.7 КБ.
• Некоторые заголовки отправляются постоянно (User-Agent, Host), хотя, как правило, они не меняются в рамках одной сессии и лишь зря засоряют пропускной канал.
• HTTP использует лишь опциональную компрессию, в то время как ее следует применять постоянно.
 
К достоинствам SPDY относятся следующие пункты:
• Снижение времени загрузки страницы. В одном соединении можно отправлять неограниченное количество запросов, что существенно повышает эффективность и скорость передачи данных.
• Простая установка. Модификация требуется лишь в браузере и веб-сервере, а сам протокол умеет использовать старую сетевую инфраструктуру, поскольку на базовом уровне SPDY по-прежнему работает поверх TCP. Изменения в коде страниц также не нужны.
• Неограниченное количество запросов по ограниченному каналу приводит к тому, что в результате ни одно приложение не получает необходимые данные вовремя. Поэтому в SPDY реализована система приоритетов, позволяющая передавать критически важные данные в первую очередь.
• Снижение веб-трафика достигается за счет использования компрессии заголовков и удаления ненужных данных. Это позволяет уменьшать размер заголовков запросов на 88%, а заголовков ответов – на 85%, чего уже достаточно для значительного ускорения загрузки страниц на медленных соединениях.
• Добавление прослойки в виде SSL-протокола обеспечивает надежную защиту передаваемых данных. Использование безопасного соединения немного снижает эффективность SPDY, однако даже в этом случае он оказывается экономнее и быстрее HTTP.
• Учитывая то, что SPDY отправляет на 40% меньше пакетов по сравнению с HTTP и использует меньше TCP-соединений, вероятность потери и повторной отправки пакетов также снижается. В случаях неудачной доставки пакетов SPDY быстрее HTTP на 27% при прочих равных.
• Возможность передачи данных сервером даже до поступления запроса от клиента также приводит к снижению задержек.
 

Как проверить, активен ли SPDY на конкретном сайте
Чтобы каждый раз не открывать скрытые настройки браузера для проверки используемого протокола, можно использовать SPDY Indicator – расширение для Chrome и Firefox, отображающее тип соединения, установленного между сайтом и браузером. Если SPDY активен, то иконка SPDY Indicator становится зеленой.
Обзор протокола SPDY



Поддерживаемые ресурсы
На текущий момент поддержка SPDY реализована лишь на нескольких крупных сайтах: Gmail, Google, GooglePlus, Youtube, Twitter. Однако учитывая, что в апреле 2012 года Google выпустила mod_spdy для Apache, даже небольшие веб-сайты, работающие на этом веб-сервере, могут переходить на SPDY и использовать все его преимущества.
Одним из ранних адептов SPDY является и Amazon. Браузер Silk, установленный в AmazonKindleFire, использует SPDY для соединения с серверами AmazonElasticComputeCloud.


Тестирование скорости
Поскольку Google все еще лишь планирует выпустить специальные инструменты для тестирования производительности SPDY, для самостоятельной проверки пришлось искать другие способы.
В результате было найдено расширение Page Benchmarker для Chrome, для работы которого браузер необходимо запускать с ключом –enable-benchmarking.
Обзор протокола SPDY

Page Benchmarker умеет загружать указанные через запятую сайты заданное количество раз, после чего отображает среднее время, необходимое для их открытия. Наличие опции очистки кэша и сброса соединений позволяет уравнять условия для каждой итерации, что приводит к более точным результатам.
Проверка проводилась на сайтах Youtube.com, Google.com.ua, Twitter.com, Gmail.com.
В каждом случае с помощью SPDY Indicator предварительно проводилась проверка поддержки SPDY указанными сайтами.
Page Benchmarker в обязательном порядке требует, чтобы введенный url страницы точно совпадал с тем, что откроет браузер, поэтому если на сайте используется редирект, то бенчмарк вылетает с ошибкой. Именно этим объясняется использование локальной версии поисковика Google, а также наличие или отсутствие приставки www в разных адресах. Для Gmail и вовсе пришлось предварительно авторизироваться и указать столь хитрый url, без которого Page Benchmarker наотрез отказывался работать.
Последним и также обязательным условием для запуска Page Benchmarker является использование протокола https. В принципе это уже зависит от настроек браузера, но по умолчанию Chrome запрещает использование SPDY, если передача данных происходит по незащищенному соединению (http).
Используя дефолтные настройки, тест запускался несколько раз с отключенным и включенным SPDY для каждого url. Разработчики расширения не особо потрудились описать его возможности, но в колонке totalloadmean отображается время в миллисекундах, потраченное на загрузку и рендеринг страницы.
Обзор протокола SPDY

Для наглядности – эти же данные в виде диаграммы. Время загрузки сайтов в миллисекундах (меньше – лучше):
Обзор протокола SPDY

Как это ни странно, но положительные результаты в тестах были получены только для Gmail, где SPDY уменьшал время загрузки страницы в среднем на 23%, с 1205 до 930 мс. Для Youtube разница была практически незаметна и составляла всего 3%, причем не в пользу SPDY.
На Twitter титульная страница начала грузиться дольше на 12.5%, а на google.com.ua – и вовсе на 32%, что явно демонстрирует тот факт, что не все так хорошо на практике, как в теории, и SPDY еще требуется определенная доработка перед релизом.
Ключевые теги: SPDY, протокол





Добавить комментарий

КОММЕНТАРИИ

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Быстрый вход: 

ВОЗМОЖНО ВАС ЭТО ЗАИНТЕРЕСУЕТ

  • Кто полноправный хозяин Интернета и был ли он создан на случай ядерной войны
    Сразу можно сказать о том, что никто не владеет Интернетом. У Интернета нет какого-либо руководства, все технические стандарты открыты, он объединил в себе большое количество других сетей, хотя
  • 10 лучших WebGL-экспериментов
    Если вы профессиональный веб-разработчик который ищет вдохновение или просто любопытный человек, хочу сегодня предложить вашему вниманию коллекцию из лучших WebGL экспериментов...Так что, берите
  • История парикмахерского искусства
    История парикмахерского мастерства уходит корнями глубоко в древность, когда наши предки (2 тысячи лет до н.э.) стали украшать себя разнообразными прическами. Эпоха сменялось эпохой, менялась мода и
  • Появилась финальная версии программы-клиента Dropbox 1.4.7 Final
    Создатели популярного сервиса для синхронизации данных Dropbox сообщили о выходе финальной версии программы-клиента, которая долгое время находилась на стадии бета-тестирования. В версии 1.4 два
  • Facebook Camera — Новое мобильное приложение от Facebook
    Через два месяца после покупки фотосервиса Instagram сеть Facebook анонсировала свою новую разработку – мобильное приложение Facebook Camera. Несмотря на это совпадение, представители компании
Информация
Комментировать статьи на сайте возможно только в течении 90 дней со дня публикации.