اسپیدی

اسپیدی یک پروتکل ارتباطی مشخصه باز منسوخ شده است که بطور عمده توسط گوگل برای انتقال محتوای وب توسعه داده شده بود. اسپیدی، با هدف کاهش زمان بارگذاری صفحات وب و افزایش امنیت وب، در ترافیک HTTP تغییراتی را ایجاد می‌کند. اسپیدی از طریق فشرده سازی، هم‌تافتن و اولویت بندی به کاهش تاخیر دست پیدا می‌کند؛ البته این قضیه هم به شرایط شبکه و وبسایت بستگی دارد. اسم SPDY مخفف نیست بلکه یک حالت کوتاه شده کلمه speedy است. علامت تجاری SPDY متعلق به گوگل است.
توسعه‌دهندگان اصلی اسپیدی، یعنی مایک بلش و روبرتو پئون، به توسعه پروتکل HTTP/2 هم پرداخته‌اند. در فوریه سال 2015، گوگل اعلام کرد که با توجه به اینکه استانداردهای HTTP/2 مورد تصویت نهایی قرار گرفته، پشتیبانی از اسپیدی منسوخ خواهد گردید و دیگر از آن پشتیبانی نخواهد شد. پشتیبانی از اسپیدی در مرورگر کروم نسخه 51 توسط گوگل حذف شد و موزیلا هم از نسخه 50 مرورگر فایرفاکس دیگر اسپیدی را پشتیبانی نمی‌کند.
طراحی
هدف اسپیدی کاهش زمان بارگذاری صفحات وب است. این کار از طریق اولویت بندی و تسهیم کردن انتقال منابع فرعی یک صفحه وب صورت می‌گیرد به طریقی که تنها یک ارتباط برای هر کلاینت نیاز است. رمزگذاری TLS بخش جدایی ناپذیر در پیاده سازی اسپیدی است، و در طراحی آن انتقالات به صورت gzip یا DEFLATE فشرده شده‌اند (برخلاف HTTP، که headerها فشرده نیستند). علاوه بر این، سرورها بجای اینکه منتظر درخواست‌های جداگانه برای هر منبع صفحه بمانند به آنها اشاره کرده یا آنها را به سمت کلاینت می‌فرستند.
رابطه SPDY با HTTP
SPDY جایگزین HTTP نمی‌شود بلکه نحوه ارسال درخواست‌ها و پاسخ‌ها را تغییر می‌دهد. این بدان معنا است که تمامی نرم‌افزارهای فعلی سمت سرور می‌توانند بدون تغییر مورد استفاده قرار بگیرند اگر تنها یک لایه انتقال منطبق با SPDY در جای مناسب قرار بگیرد. وقتی درخواست‌های HTTP بر روی اسپیدی فرستاده می‌شوند، پردازش شده توکن بندی شده، ساده سازی شده و فشرده می‌شوند. برای مثال، هر نقطه پایانی در ارتباط اسپیدی سابقه اینکه چه هدرهایی در درخواست‌های پیشین فرستاده شده‌اند را نگاه می‌دارد و می‌تواند از دوباره فرستادن هدرهایی که تغییر نکرده‌اند جلوگیری کند؛ آنهایی که باید فرستاده شوند هم بصورت فشرده فرستاده می‌شوند.
گروه کاری در حال برنامه ریزی برای کار بر روی HTTP 2.0 می‌باشد و اسپیدی یکی از کاندیداها برای شروع کار است.
کش کردن
مکانیزم Server Push محتوا را بدون توجه به وجود کش موجود Push کرده که نتیجه آن هدر رفتن پهنای باند است. راه حل این مشکل استفاده از روش Server Hint است.
نسخه‌های پروتکل
SPDY یک پروتکل نسخه بندی شده است. در فریم‌های کنترلی آن 15 بیت برای مشخص شدن نسخه پروتکل اختصاص داده شده است. نسخه 1 پروتکل SPDY دیگر استفاده نمی‌شود. نسخه فعلی SPDY نسخه 2 می‌باشد، در حالی که SPDY نسخه 3 در مرورگر کروم نسخه 19 و بالاتر، با هدف جایگزین شدن به جای نسخه 2 در نسخه 22 این مرورگر، در حال تست می‌باشد. مرورگر فایرفاکس در نسخه 15 از SPDY نسخه 3 پشتیبانی می‌کند. تغییرات SPDY نسخه 3، کنترل جریان، بروز رسانی دیکشنری فشرده‌سازی، و حذف فضای تلف شده از بعضی از فریم‌های خاص به همراه رفع ایرادهای جزیی می‌باشد.
پشتیبانی مرورگرها
مرورگر Google Chrome و Chromium از SPDY پشتیبانی می‌کنند. می‌توانید sessionهای SPDY را از آدرس chrome://net-internals/#events-q=type:SPDY_SESSION%20is:active مشاهده نمایید. فایرفاکس از نسخه ۱۱ و SeaMonkey از نسخه ۲٫۸ از SPDY پشتیبانی می‌کنند.
پشتیبانی سرور
در ۵ مارچ ۲۰۱۵ (۱۴ اسفند ۱۳۹۳) ۳.۶% وب سایت‌ها از اسپیدی استفاده می‌کنند.
تا مارچ ۲۰۱۲ (اسفند ۱۳۹۰) سایتهای کمی هستند که از SPDY استفاده می‌نمایند. بعضی از سرویس‌های گوگل (برای مثال جستجوی گوگل، Gmail و دیگر سرویسهایی که SSL برایشان فعال شده) وقتی قابلیت SPDY موجود باشد از آن استفاده می‌کنند.
تبلیغات گوگل نیز از سرورهایی که SPDY را پشتیبانی می‌کنند عرضه می‌شوند.
twitter از مارج ۲۰۱۲ (اسفند ۱۳۹۰)، SPDY را بر روی سرورهای خود فعال کرده و خود را تبدیل به دومین سایت بزرگی که SPDY را مورد استفاه قرار داده، کرده‌است.
در مارچ ۲۰۱۲ (اسفند ۱۳۹۰) وب سرور کد باز Jetty پشتیبانی از SPDY را در نسخه ۷٫۶٫۲ خود اعلام کرده، در حالیکه دیگر پروژه‌های کد باز دیگر نیز در حال کار برای پشتیبانی کردن از SPDY هستند. مثل node.js، آپاچی، curl و nginx.
در آوریل ۲۰۱۲ (فروردین – اردیبهشت ۱۳۹۱) گوگل را برای پشتیبانی از SPDY برای وب سرور آپاچی عرضه کرده که باعث شده سایتهای کوچکتر هم از این تکنولوژی بهره مند شوند.
در جولای 2017 (مرداد1396 ) ماژول http2 برای کنترل پنل محبوب WHM یا همان سی پنل نیز فعال گردید