Огляд протоколу SPDY

Огляд протоколу 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 реалізована лише на декількох великих сайтах: Gmail, Google, GooglePlus, Youtube, Twitter. Однак з огляду на, що в квітні 2012 року Google випустила mod_spdy для Apache, навіть невеликі веб-сайти, що працюють на цьому веб-сервері, можуть переходити на SPDY і використовувати всі його преімущества.Однім з ранніх адептів SPDY є і Amazon. Браузер Silk, встановлений в AmazonKindleFire, використовує SPDY для з’єднання з серверами AmazonElasticComputeCloud.тестування швидкостіОскільки Google все ще лише планує випустити спеціальні інструменти для тестування продуктивності SPDY, для самостійної перевірки довелося шукати інші способи.В результаті було знайдено розширення Page Benchmarker для Chrome, для роботи якого браузер необхідно запускати з ключем -enable-benchmarking.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 відображається час в мілісекундах, витрачений на завантаження і рендеринг страніци.Для наочності – ці ж дані у вигляді діаграми. Час завантаження сайтів в мілісекундах (менше – краще): Як це не дивно, але позитивні результати в тестах були отримані тільки для Gmail, де SPDY зменшував час завантаження сторінки в середньому на 23%, з 1205 до 930 мс. Для Youtube різниця була практично непомітна і становила всього 3%, причому не на користь SPDY.На Twitter титульна сторінка початку завантажуватися довше на 12.5%, а на google.com.ua – і зовсім на 32%, що явно демонструє той факт, що не все так добре на практиці, як в теорії, і SPDY ще потрібна певна доробка перед релізом.

Ссылка на основную публикацию