SPDY (بخوانید: اسپیدی) یک پروتکل شبکه آزمایشی است که بطور عمده توسط گوگل برای انتقال محتوای وب توسعه داده شده است.
اگرچه SPDY در حال حاظر یک پروتکل استاندارد شده نیست اما گروه توسعه دهنده آن اعلان کرده است که به سمت استاندارد سازی آن پیش می روند (اکنون در غالب پیش نویس قابل دسترس است)، و پیاده سازی های مرجع آن هم در مرورگر گوگل کروم و هم در موزیلا فایرفاکس قابل دسترس است.
اسپیدی شبیه HTTP است با اهداف خاص خود: کاهش زمان لود شدن صفحات وب و بهبود امنیت در وب.
اسپیدی از طریق فشره سازی، تسهیم و اولویت بندی به کاهش تاخیر دست پیدا میکند. اسم SPDY مخفف نیست بلکه یک حالت کوتاه شده کلمه speedy است. علامت تجاری SPDY متعلق به گوگل است.
طراحی
هدف اسپیدی کاهش زمان بارگذاری صفحات وب است. این کار از طریق اولویت بندی و تسهیم کردن انتقال منابع فرعی یک صفحه وب صورت میگیرد به طریقی که تنها یک ارتباط برای هر کلاینت نیاز است. رمزگذاری TLS بخش جدایی ناپذیر در پیاده سازی اسپیدی است، و در طراحی آن انتقالات به صورت gzip یا DEFLATE فشرده شده اند (برخلاف HTTP، که header ها فشرده نیستند).علاوه بر این، سرورها بجای اینکه منتظر درخواست های جداگانه برای هر منبع صفحه بمانند به آنها اشاره کرده یا آنها را به سمت کلاینت میفرستند.
رابطه SPDY با HTTP
SPDY جایگزین HTTP نمیشود بلکه نحوه ارسال درخواست ها و پاسخ ها را تغییر میدهد. این بدان معنا است که تمامی نرم افزارهای فعلی سمت سرور میتوانند بدون تغییر مورد استفاده قرار بگیرند اگر تنها یک لایه انتقال منطبق با SPDY در جای مناسب قرار بگیرد. وقتی درخواستهای HTTP بر روی اسپیدی فرستاده میشوند، پردازش شده توکن بندی شده، ساده سازی شده و فشرده میشوند. برای مثال، هر نقطه پایانی در ارتباط اسپیدی سابقه اینکه چه هدرهایی در درخواستهای پیشین فرستاده شده اند را نگاه میدارد و می تواند از دوباره فرستادن هدرهایی که تغییر نکرده اند جلوگیری کند؛ آنهایی که باید فرستاده شوند هم بصورت فشرده فرستاده میشوند.
گروه کاری IETF در حال برنامه ریزی برای کار بر روی 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 مشاهده نمایید.
فایرفاکس از نسخه 11 و SeaMonkey از نسخه 2.8 از SPDY پشتیبانی میکنند، اگرچه به صورت پیشفرض فعال نیست، از تنظیم network.http.spdy.enabled در آدرس about:config میتوانید آنرا فعال نمایید.
فایرفاکس قرار است از نسخه 13 به صورت پیشفرض از SPDY پشتیبانی نماید.
پشتیبانی سرورها
تا مارچ 2012 (اسفند 1390) سایتهای کمی هستند که از SPDY استفاده می نمایند.
بعضی از سرویس های گوگل (برای مثال جستجوی گوگل، Gmail و دیگر سرویسهایی که SSL برایشان فعال شده) وقتی قابلیت SPDY موجود باشد از آن استفاده میکنند.
تبلیغات گوگل نیز از سرورهایی که SPDY را پشتیبانی میکنند عرضه میشوند.
twitter از مارج 2012 (اسفند 1390)، SPDY را بر روی سرورهای خود فعال کرده و خود را تبدیل به دومین سایت بزرگی که SPDY را مورد استفاه قرار داده، کرده است.
در مارچ 2012 (اسفند 1390) وب سرور کد باز Jetty پشتیبانی از SPDY را در نسخه 7.6.2 خود اعلام کرده، در حالیکه دیگر پروژه های کد باز دیگر نیز در حال کار برای پشتیبانی کردن از SPDY هستند. مثل node.js ، آپاچی، curl و nginx.
در آپریل 2012 (فروردین – اردیبهشت 1391) گوگل بسته هایی را برای پشتیبانی از SPDY برای وب سرور آپاچی عرضه کرده که باعث شده سایتهای کوچکتر هم از این تکنولوژی بهره مند شوند.
منبع: ویکی پدیا انگلیسی
پروتکلی نیست که نشه روش فیلترینگ راه انداخت؟ یعنی پروتکل رو جوری طراحی کنن که کشورا نتونن روش نظارت کنند.