کش سمت سرور چیست؟ در حال حاضر بسیاری از ارائه دهندگان هاست دارای یک فناوری ذخیره سازی داخلی در سمت سرور هستند. بنابراین ممکن است از خود بپرسید که آیا به یک افزونه Cache جداگانه نیاز دارید؟ من همچنین چند ارائه دهنده هاست را مشاهده کرده ام که به من می گویند نیازی به استفاده از افزونه های Cache ندارند زیرا آنها کش سمت سرور دارند. اما آیا این کافی است؟

اما قبل از پرداختن به بحث اصلی (Cache سمت سرور) بیایید نگاهی مختصر به این موضوع بیندازیم، Cache چیست؟
کش (Cache) چیست؟
در علوم کامپیوتر، Cache یک مکان ذخیره سازی است که برای ذخیره موقت داده های مورد استفاده توسط سرورها، برنامه ها و مرورگرها برای سرعت بخشیدن به زمان بارگذاری استفاده می شود. انواع زیادی از Cache وجود دارد. بسته به جایی که به دنبال آنها میگردید، تقریباً هر ماشینی، چه نرمافزار یا سختافزار، نوعی حافظه پنهان دارد و از آن استفاده میکند.
کش چگونه کار می کند؟
کپی از داده ها در مکان های تعیین شده، به صورت محلی یا روی سرور ذخیره می شوند. این باعث صرفه جویی در منابعی می شود که سعی می کنند پرس و جوهای دشوار را روی پایگاه داده ها یا آنهایی که هر بار که یک وب سایت بارگذاری می شود تصاویر بزرگ را از سرور بارگیری می کنند، انجام دهند.
مرورگرها قبل از درخواست منبع از سرور، این مکانها را بررسی میکنند و در صورت یافتن، بهجای بارگیری از حافظه پنهان بارگیری میشود، که بسیار کندتر خواهد بود.
داده های ذخیره شده چیست؟
داده های ذخیره شده در حافظه پنهان اطلاعات ذخیره شده در یک مکان خاص است که برای سرعت بخشیدن به جمع آوری و انتقال داده ها استفاده می شود. در مورد وبسایت، حافظه پنهان به شما این امکان را میدهد که هر بار که به صفحه دسترسی پیدا میکنید، منابع خاصی را بدون دانلود از سرور بارگیری کنید، مانند فونتها یا نمادها. زمان بارگذاری صفحه
انواع Cache

بسته به مورد استفاده خود، ممکن است از یکی از این چهار نوع اصلی Cache استفاده کنید:
کش مرورگر وب
این ذخیره سازی در مرورگر انجام می شود. همه مرورگرها دارای یک حافظه محلی هستند که از آن برای بازیابی منابعی که قبلاً به آنها دسترسی داشته اید استفاده می کنند. این نوع کش خصوصی است زیرا منابع ذخیره شده به اشتراک گذاشته نمی شوند. مرورگرها داده هایی مانند کل صفحات وب را برای سرعت بخشیدن به زمان بارگذاری کش می کنند.
کش پروکسی
این ذخیرهسازی که به آن «کش کردن میانی» نیز میگویند، بین مشتری و سرور مبدا در سرور پروکسی انجام میشود. کش پروکسی یک حافظه پنهان مشترک است که توسط چندین مشتری استفاده می شود و معمولاً توسط ارائه دهندگان نگهداری می شود.
سرورهای پروکسی اجازه می دهند داده ها با کاربران بیشتری به اشتراک گذاشته شود و از Cache برای جلوگیری از بازیابی داده ها از پایگاه داده هر بار که درخواست می شود، استفاده می کنند.
کش دروازه
Cache دروازه که «پراکسی معکوس» نیز نامیده میشود، یک لایه ذخیرهسازی جداگانه و مستقل بین مشتری و برنامه است. درخواست های ارسال شده توسط مشتری را ذخیره می کند و آنها را به برنامه ارسال می کند. به طور مشابه، پاسخ ها را از برنامه برای مشتری ارسال می کند.
اگر منبعی دوباره درخواست شود، Cache قبل از رسیدن به برنامه، پاسخ را برمیگرداند. Cache دروازه مشترک است، اما توسط سرورها، نه کاربران، و شامل مواردی مانند نقطه پایانی یک API است.
کش برنامه
این ذخیره سازی در اپلیکیشن انجام می شود. این به توسعهدهنده اجازه میدهد تا مشخص کند که مرورگر چه عناصری را در حافظه پنهان نگه دارد و آنها را حتی در حالت آفلاین در دسترس کاربران قرار دهد.
این عناصر ممکن است شامل قابلیتهای ویرایش محلی اسناد خاص (به عنوان مثال: Google Docs) یا ذخیره دادهها در یک پایگاه داده موقت فقط برای همگامسازی با پایگاه آنلاین باشد که دستگاه به اینترنت متصل شد.
کش سرور
Cache سرور شبیه Cache مرورگر است، فقط به این دلیل که داده ها را به جای ذخیره محلی در سمت سرور نگه می دارد. اغلب برای ذخیره پرس و جوهای پایگاه داده استفاده می شود تا از اجرای وظایف حافظه و CPU فشرده برای پرس و جوهای محبوب جلوگیری شود.
دادههای ذخیرهشده سرور شامل صفحات وب ایجاد شده به صورت پویا، پاسخهای API پرسشهای پایگاه داده و موارد دیگر است. حالا به بحث اصلی یعنی Cache سمت سرور می پردازیم!
کش سمت سرور چیست؟
هنگامی که یک درخواست به سرور شما می رسد، وردپرس باید تعداد زیادی اسکریپت PHP و اسکریپت های MySQL را اجرا کند. هر بار که یک صفحه/پست را باز می کنید، باید حداقل 27 پرس و جو MySQL را اجرا کند. 27 تعداد پرس و جوهای پیش فرض است، ممکن است بسته به موضوع شما و تعداد افزونه های نصب شده 50 یا 100 سوال باشد.
بسته به اندازه پرس و جو SQL و داده های موجود در پایگاه داده شما، هر یک از این پرس و جوها ممکن است چند میلی ثانیه طول بکشد.

با جمع بندی تمام اجرای PHP و MySQL، TTFB (زمان تا اولین بایت) شما می تواند حدود یک ثانیه یا حتی بیشتر باشد.
Cache سمت سرور این فرآیند را با ذخیره کپی های HTML تولید شده در دیسک/حافظه حذف می کند. این امر TTFB را کاهش می دهد و مصرف منابع سرور را کاهش می دهد. زیرا سرور فقط باید آن فایل تولید شده را سرویس دهد.
ارائه دهندگان هاست مختلف راه حل های Cache سمت سرور متفاوتی دارند. رایج ترین آنها ذخیره سازی FastCGI در سرورهای Nginx است. Varnish، Redis، Memcache و غیره نیز لایه های ذخیره مشابه هستند.
اگر صفحات HTML را در Cloudflare کش می کنید، این نیز نوعی Cache سمت سرور است.
چه پلاگینهایی کش را انجام میدهند که Cache سمت سرور نمیتواند انجام دهد؟
بیشتر پلاگین های کش صفحات HTML را درست مانند Cache سمت سرور تولید می کنند. اما افزونه های Cache می توانند بهینه سازی های جلویی بیشتری را انجام دهند که Cache سمت سرور نمی تواند.
اینجا چند مورد هستند که به آن اشاره می کنیم:
ایجاد مسیر بحرانی css – FCP (نخستین رنگ محتوایی) را بهبود می بخشد، که اکنون یک عامل رتبه بندی در SERP گوگل است.
جاوا اسکریپت و CSS را به تعویق بیندازید – اسکریپتهای مسدودکننده رندر را با بارگیری ناهمزمان حذف کنید.
CSS و Javascript را کوچک کنید
بارگذاری تنبل – بارگذاری تنبل تصاویر، فیلم ها، جاسازی ها و غیره
بسته به افزونه کشی که استفاده می کنید، ویژگی های بسیار بیشتری وجود دارد.
من FlyingPress را برای Cache توصیه می کنم.
بنابراین به طور خلاصه، آیا به یک افزونه Cache با کش سمت سرور نیاز دارم؟ پاسخ بله است!







