Відкрити головне меню

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].

ВиноскиРедагувати

  1. а б A 2x Faster Web. Official Google Chromium Blog. 2009-11-11. Архів оригіналу за 2012-04-10. Процитовано 2009-11-13. 
  2. а б Для http-сервера nginx представлен модуль с поддержкой протокола SPDY
  3. Not as SPDY as You Thought. Архів оригіналу за 12 жовтень 2012. Процитовано 20 червень 2012. 
  4. Hello HTTP/2, Goodbye SPDY // Chromium Blog
  5. Google отказывается от поддержки в Chrome протокола SPDY в пользу HTTP/2 // opennet.ru
  6. Chromium SPDY client implementation
  7. Chromium: SPDY proxy examples. Архів оригіналу за 23 грудень 2010. Процитовано 20 червень 2012. 
  8. Jetty Feature SPDY
  9. indutny/node-spdy · GitHub. Github.com. Процитовано 2012-05-10. 
  10. Fedor Indutny (2012-01-24). What the $%@! is SPDY - blog.nodejitsu.com - scaling node.js applications one callback at a time. blog.nodejitsu.com. Архів оригіналу за 2013-07-22. Процитовано 2012-05-10. 
  11. mod-spdy - Apache SPDY module - Google Project Hosting. Code.google.com. Архів оригіналу за 2013-07-22. Процитовано 2012-05-10. 
  12. Компания Google выпустила модуль к Apache для обеспечения поддержки протокола SPDY
  13. libspdy. daniel.haxx.se. 2011-10-18. Архів оригіналу за 2013-07-22. Процитовано 2012-05-10. 
  14. https://twitter.com/#!/nginxorg/status/192301063934705665

ПосиланняРедагувати

Дивись такожРедагувати