SPDY (читається як «speedy», «спіді») — протокол прикладного рівня для передачі вебвмісту, розроблений корпорацією Google. Основним завданням SPDY є зниження часу завантаження вебсторінок та їх елементів.[1] Це досягається за рахунок розстановки пріоритетів і мультиплексування передачі декількох файлів таким чином, щоб було потрібно тільки одне з'єднання для кожного клієнта. За задумом розробників, цей протокол позиціонувався як заміна деяких частин протоколу HTTP — таких, як управління з'єднаннями і формати передачі даних. SPDY просувається для включення до складу майбутнього стандарту HTTP/2.0.
Протокол був створений спеціально для мінімізації затримок при з'єднанні та обміні даними між клієнтом і сервером. При обслуговуванні з'єднання SPDY використовує схожий на HTTP механізм взаємодії у формі запит/відповідь. SPDY додає сеансовий рівень поверх SSL, що дає можливість забезпечити передачу кількох одночасних потоків в рамках одного TCP-з'єднання. При використанні HTTP запити в рамках одного потоку обслуговуються послідовно, і залучення SPDY дає можливість мультиплексувати запити ресурсів, обробляти їх паралельно і відправляти запити з урахуванням динамічно розрахованих пріоритетів, збільшуючи поточну пропускну здатність.
Використання SSL одночасно дозволяє вирішити проблему з проходженням запитів через проксі-сервери і дозволяє організувати доставку даних з ініціативи сервера, без спеціального запиту клієнта (технологія Server push). Додаткове прискорення досягається за рахунок стиснення HTTP-заголовків запиту і відповіді, що зменшує розмір переданих даних і помітно прискорює завантаження сторінок, які породжують велику кількість дрібних запитів (CSS, JavaScript файли, картинки), особливо при використанні повільних каналів зв'язку. За даними Google[2][1] прискорення завантаження сторінок при використанні SPDY становить від 15 % до 50 %, але за результатами[3] тестування критиків протоколу, прискорення склало 4.5 % (тестування проводилося з використання зворотного проксі для 500 найбільших сайтів за рейтингом Alexa. Низькі показники пояснюються тим, що на сторінках більшості сайтів використовуються зовнішні вставки, в той час як SPDY прискорює завантаження тільки з одного сервера).
Після затвердження рекомендацій HTTP2, в основу якого ліг SPDY, у лютому 2015 Google відмовився від підтримки SPDY у своїх продуктах на користь HTTP/2.[4][5]
Підтримка
Підтримка протоколу SPDY інтегрована в браузери Google Chrome/Chromium[6][7], Firefox і Opera (з версії 12.10). Сесії SPDY в Chrome можна дослідити через URI: chrome://net-internals/#events&q=type:SPDY_SESSION%20is:active
.
З серверного боку на початок 2012 відкритий проект Jetty оголосив про підтримку SPDY у версії 7.6.2,[8], а інші відкриті проекти працюють над втіленням протоколу SPDY у свої продукти, зокрема node.js[9][10], Apache (mod_spdy)[11][12], curl[13], nginx[14][2].
Виноски
Посилання
Див. також