کش کردن به عمل ذخیره کردن اطلاعات با هدف ارسال پاسخ سریع تر به درخواست هایی است که جهت بارگذاری صفحه ارسال می شود. در طراحی سایت، کش کردن اطلاعات به طور کلی به دو دسته کش سمت سرور و کش سمت کاربر تقسیم می شوند.
کش سمت سرور
کش سمت سرور (Server – side cache) به ذخیره کردن اطلاعات در سرور گفته می شود.طور که می دانید در سایت های داینامیک به عنوان نمونه جهت ایجاد یک صفحه HTML، با استفاده از دیتابیس و کدنویسی سمت سرور (مانند php. جاوا، net. و غیره) یک صفحه ایجاد می شود و در اختیار کاربر قرار داده می شود که این روال نیاز به انجام پردازش و صرف زمان دارد. با کش کردن اطلاعات روی سرور، صفحات سایت از قبل به صورت HTML ایجاد شده و روی سرور ذخیره می شوند و زمانی که کاربر درخواستی برای یک صفحه به سرور ارسال کرد، سرور می تواند بدون نیاز به پردازش کدهای سمت سرور و دیتابیس، خیلی سریع صفحه HTML را در اختیار کاربر قرار دهد.
استفاده از کش سمت سرور یکی از راهکارهای موثر در کاهش زمان تاخیر پاسخ سرور و همچنین بالا بردن کارایی (Performance) سرور و در نهایت بهبود رنکینگ سایت در موتورهای جستجو است.
جهت پیاده سازی این نوع کش در هاست های اشتراکی و سرورهای اختصاصی راهکارهای متفاوتی وجود دارد. افزونه های کش متعددی برای بسیاری از سیستم های مدیریت محتوا وجود دارند که می توانید با جستجو در گوگل بهترین راهکار را برای سایت و سرورتان انتخاب نمایید.
سمت سرور متعددی جهت نصب بر روی سرورهای اختصاصی با سیستم عامل های مختلف ویندوز و وب سرورهای مختلف مانندIIS ، Nginx Apache و غیره وجود دارند که از معروف ترین آنها می توان به Varnish و MemCached اشاره کرد که جهت پیاده سازی آنها نیاز به دانش کافی در مورد وب سرور و دیتابیس مورد استفاده و همچنین کسی که قصد نصب و تنظیم آن را دارید خواهید داشت.
مدت زمان کش فایلها روی سرور:
زمان لازم برای نگهداری فایل های کش روی سرور با توجه به نیاز هر سایت متفاوت است. به عنوان نمونه اگر شما صفحاتی دارید که یک بار در هفته آپدیت می شوند، می توانید مدت زمان نگهداری کش سمت سرور را کمی کمتر از یک هفته در نظر بگیرید و اگر سایت فروشگاهی دارید، با توجه به تغییرات قیمت کالاها، اضافه شدن دیدگاه های کاربران و اپدیت صفحات سایت برای مدت زمان نگهداری کش سمت سرورتان تصمیم گیری کنید. با توجه به این دو نمونه، به طور کلی زمان نگهداری کش با توجه به میزان تغییرات اعمال شده در صفحات در بازه های زمانی محاسبه می شود.
کش سمت کاربر:
کش سمت کاربر (Client – side cache) از نظر عملکرد با کش سمت سرور مشابه است. در کش سمت کاربر برخی از اطلاعات بر روی سیستم کاربر ذخیره می شود تا در صورتیکه کاربر مجدد بخواهد از یک صفحه بازدید کند، برخی از منابع لازم برای بارگذاری صفحه مانند فایلهای CSS جاوا اسکریپت، عکس و غیره از روی سیستم کاربر خوانده شود که در نتیجه آن، سرعت بارگذاری صفحه سریع ترمی شود و تاثیر مثبت در تجربه کاربر می گذارد.
برای اینکه بتوانید از امکان کش سمت کاربر استفاده کنید، باید تنظیمات خاصی را در وب با خاصی را در وب سرور انجام دهید. نحوه تنظیم وب سرورهای مختلف با یکدیگر متفاوت هستند. به عنوان مثال در وب سرور آپاچی از طریق فایل htaccess. در ریشه سایت می توانید این امکان را برای فایل های متفاوت به طور جداگانه و یا گروهی تعریف کنید.
مدت زمان کش سمت کاربر
مدت زمان کش فایل ها روی سیستم کاربران می تواند برای فایلهای مختلف با یکدیگر متفاوت باشد. به عنوان نمونه شما می توانید تنظیمات سایت را به نحوی انجام دهید که عکس های jpg و gif و png برای دیگر فایل های و webp برای یک ماه یا یک سال توسط مرورگر کاربر روی سیستم وی ذخیره شود. به همین ترتیب برای دیگر فایل های mp4 ، ico ،css ، js و غیره نیز می توانید زمان مورد نیاز را تعریف کنید.
توصیه می کنیم که زمان کمتر از یک ماه و بیشتر یک سال را برای کش سمت کاربر تعریف نکنید. در مورد این مبحث که ارتباط مستقیم با سرعت بارگذاری صفحات دارد در فصل هفتم به نام“Google PageSpeed Insights” نیز توضیحاتی داده شده است.
فشرده سازی در HTTP
فشرده سازی و سازی فایل های استاتیک و فایل هایی که به صورت داینامیک ایجاد می شوند و از سرور به مرور گر کاربر منتقل می شوند از اهمیت بالایی برخوردار است. تکنیک های متنوعی برای وب سرورهای مختلف جهت فشرده سازی اطلاعات وجود دارد که gzip یکی از قدیمی ترین و معروف ترین آنها است که تقریبا توسط همه مرورگرها پشتیبانی می شود. gzip می تواند تا ۹۰ اطلاعات را فشرده کند که تاثیر بسیار زیادی در سرعت انتقال اطلاعات دارد. از دیگر تکنیک های فشرده سازی می توان به deflate و Brotli اشاره کرد.
با توجه به اینکه همه مرورگرها از همه تکنیک ها پشتیبانی نمی کنند، بنابراین از تکنیکی استفاده کنید که توسط مرورگرهای معروف و فراگیر پشتیبانی شود. در جدول زیر میزان فشرده سازی برخی کتابخانه های معروف توسط gzip نمایش داده شده است.
Compression ratio | Compressed size | size | Library |
---|---|---|---|
70% | 82KB | 276KB | jqury-1.11.0.js |
65% | 33KB | 94KB | jqury-1.11.0.min.js |
75% | 182KB | 729KB | angular-1.215.js |
63% | 37KB | 101KB | angular-1.215.min.js |
85% | 18KB | 118KB | bootstrap-3.1.1.css |
83% | 17KB | 98KB | bootstrap-3.1.1.min.css |
مطلب قبلی: بهینه سازی سایت های کم ترافیک و با ترافیک بالا
مطلب بعدی: گوگل سرچ کنسول و راهنمای استفاده از آن