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. 2009-11-11. Архів оригіналу за 2012-04-10. Процитовано 2009-11-13.
- ↑ а б Для 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. Архів оригіналу за 2016-08-19. Процитовано 2012-05-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. Архів оригіналу за 2012-05-09. Процитовано 2012-05-10.
- ↑ mod-spdy - Apache SPDY module - Google Project Hosting. Code.google.com. Архів оригіналу за 2013-07-22. Процитовано 2012-05-10.
- ↑ Компания Google выпустила модуль к Apache для обеспечения поддержки протокола SPDY
- ↑ libspdy. daniel.haxx.se. 2011-10-18. Архів оригіналу за 2012-05-13. Процитовано 2012-05-10.
- ↑ https://twitter.com/#!/nginxorg/status/192301063934705665
Посилання[ред. | ред. код]
- Специфікації SPDY
- Документація зі SPDY
- SPDY: Google wants to speed up the web by ditching HTTP
- Apache SPDY module