SPDY
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].
Виноски
- A 2x Faster Web. Official Google Chromium Blog. 11 листопада 2009. Архів оригіналу за 10 квітня 2012. Процитовано 13 листопада 2009.
- Для http-сервера nginx представлен модуль с поддержкой протокола SPDY
- Not as SPDY as You Thought. Архів оригіналу за 12 жовтня 2012. Процитовано 20 червня 2012.
- Hello HTTP/2, Goodbye SPDY // Chromium Blog
- Google отказывается от поддержки в Chrome протокола SPDY в пользу HTTP/2 // opennet.ru
- Chromium SPDY client implementation
- Chromium: SPDY proxy examples. Архів оригіналу за 23 грудня 2010. Процитовано 20 червня 2012.
- Jetty Feature SPDY. Архів оригіналу за 8 липня 2017. Процитовано 20 червня 2012.
- indutny/node-spdy · GitHub. Github.com. Архів оригіналу за 19 серпня 2016. Процитовано 10 травня 2012.
- Fedor Indutny (24 січня 2012). What the $%@! is SPDY - blog.nodejitsu.com - scaling node.js applications one callback at a time. blog.nodejitsu.com. Архів оригіналу за 9 травня 2012. Процитовано 10 травня 2012.
- mod-spdy - Apache SPDY module - Google Project Hosting. Code.google.com. Архів оригіналу за 22 липня 2013. Процитовано 10 травня 2012.
- Компания Google выпустила модуль к Apache для обеспечения поддержки протокола SPDY
- libspdy. daniel.haxx.se. 18 жовтня 2011. Архів оригіналу за 13 травня 2012. Процитовано 10 травня 2012.
- @DeviaVir It's going well ;) So far we're on schedule, should hopefully be available by the end of May. Twitter. nginx web server. 17 квітня 2012. Архів оригіналу за 12 грудня 2019. Процитовано 17 жовтня 2021. (англ.)