Статьи Интернет 15.06.2012 в 10:00 comment

Протокол SPDY – капитальный ремонт Интернета

author avatar
https://secure.gravatar.com/avatar/22a7cb673c7600faa5739de610856c43?s=96&r=g&d=https://itc.ua/wp-content/uploads/2023/06/no-avatar.png *** https://secure.gravatar.com/avatar/22a7cb673c7600faa5739de610856c43?s=96&r=g&d=https://itc.ua/wp-content/uploads/2023/06/no-avatar.png *** https://itc.ua/wp-content/themes/ITC_6.0/images/no-avatar.svg

Андрей Белокриницкий

Обозреватель и автор журнала "Домашний ПК" (Andretti)

Протокол SPDY – капитальный ремонт Интернета

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


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

Продолжается конкурс авторов ИТС. Напиши статью о развитии игр, гейминг и игровые девайсы и выигрывай профессиональный игровой руль Logitech G923 Racing Wheel, или одну из низкопрофильных игровых клавиатур Logitech G815 LIGHTSYNC RGB Mechanical Gaming Keyboard!


Loading comments...

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: