اسپیدی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

اسپیدی(به انگلیسی: 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 مشاهده نمایید. فایرفاکس از نسخه ۱۱ و SeaMonkey از نسخه ۲٫۸ از SPDY پشتیبانی می‌کنند، اگرچه به صورت پیشفرض فعال نیست، از تنظیم network.http.spdy.enabled در آدرس about:config می‌توانید آنرا فعال نمایید.
فایرفاکس قرار است از نسخه ۱۳ به صورت پیشفرض از SPDY پشتیبانی نماید.

پشتیبانی سرورها[ویرایش]

تا مارچ ۲۰۱۲ (اسفند ۱۳۹۰) سایتهای کمی هستند که از SPDY استفاده می‌نمایند. بعضی از سرویس‌های گوگل (برای مثال جستجوی گوگل، Gmail و دیگر سرویسهایی که SSL برایشان فعال شده) وقتی قابلیت SPDY موجود باشد از آن استفاده می‌کنند.
تبلیغات گوگل نیز از سرورهایی که SPDY را پشتیبانی می‌کنند عرضه می‌شوند.
twitter از مارج ۲۰۱۲ (اسفند ۱۳۹۰)، SPDY را بر روی سرورهای خود فعال کرده و خود را تبدیل به دومین سایت بزرگی که SPDY را مورد استفاه قرار داده، کرده‌است.
در مارچ ۲۰۱۲ (اسفند ۱۳۹۰) وب سرور کد باز Jetty پشتیبانی از SPDY را در نسخه ۷٫۶٫۲ خود اعلام کرده، در حالیکه دیگر پروژه‌های کد باز دیگر نیز در حال کار برای پشتیبانی کردن از SPDY هستند. مثل node.js، آپاچی، curl و nginx.
در آوریل ۲۰۱۲ (فروردین – اردیبهشت ۱۳۹۱) گوگل بسته‌هایی را برای پشتیبانی از SPDY برای وب سرور آپاچی عرضه کرده که باعث شده سایتهای کوچکتر هم از این تکنولوژی بهره مند شوند.

منابع[ویرایش]

ساداتی فر، سپهر. اسپیدی. (۱۴ خرداد ۱۳۹۱). بازبینی ۲ تیر ۱۳۹۱.