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 прискорює завантаження тільки з одного сервера).
Зміст |
Підтримка [ред.]
Підтримка протоколу SPDY вже інтегрована в браузери Chrome/Chromium[4][5], Firefox і Opera (з версії 12.10). Сесії SPDY в Chrome можна дослідити через URI: chrome://net-internals/#events&q=type:SPDY_SESSION%20is:active.
З серверного боку на початок 2012 відкритий проект Jetty оголосив про підтримку SPDY у версії 7.6.2,[6], а інші відкриті проекти працюють над втіленням протоколу SPDY у свої продукти, зокрема node.js[7][8], Apache (mod_spdy)[9][10], curl[11], nginx[12][2].
Виноски [ред.]
- ↑ а б «A 2x Faster Web». Official Google Chromium Blog. 2009-11-11. Архів оригіналу за 2012-04-11. Процитовано 2009-11-13.
- ↑ а б Для http-сервера nginx представлен модуль с поддержкой протокола SPDY
- ↑ Not as SPDY as You Thought
- ↑ Chromium SPDY client implementation
- ↑ Chromium: SPDY proxy examples
- ↑ Jetty Feature SPDY
- ↑ «indutny/node-spdy · GitHub». Github.com. Процитовано 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-10.
- ↑ «mod-spdy - Apache SPDY module - Google Project Hosting». Code.google.com. Процитовано 2012-05-10.
- ↑ Компания Google выпустила модуль к Apache для обеспечения поддержки протокола SPDY
- ↑ «libspdy». daniel.haxx.se. 2011-10-18. Процитовано 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