بهینهسازی میزبانی برای برنامههای کاربردی وب مبتنی بر محتوا شامل استراتژیهای مختلفی برای افزایش عملکرد و تجربه کاربر است. رویکردهای کلیدی شامل استفاده از CDN ها برای تحویل کارآمد محتوا، ذخیره محتوا از جمله دارایی های ثابت، بهینه سازی امنیت، نظارت، در نظر گرفتن گزینه های مقیاس پذیری و به حداقل رساندن تأخیر است. گزینه های جستجوی کارآمد و ادغام های امنیتی میزبانی را بیشتر تقویت می کند. اصلاح مستمر تلاشهای مبتنی بر عملکرد برای برآورده ساختن نیازهای کاربر در حال تحول ضروری است.
میزبانی دارایی های ثابت
دارایی های استاتیک فایل هایی هستند که برای هر درخواست به صورت پویا توسط سرور تولید نمی شوند. دارایی های استاتیک بدون تغییر باقی می مانند یا به ندرت به روز می شوند و معمولاً بدون رندر سمت سرور به مرورگر کاربر تحویل داده می شوند.
انواع فایل های استاتیک | |
---|---|
تصاویر | تصاویری مانند عکس ها، آیکون ها، تصاویر، گرافیک ها و آرم ها فایل های ثابت هستند. برخی از فرمتهای نمونه عبارتند از JPEG، PNG، WebP، GIF یا SVG. |
شیوه نامه ها | Stylesheets ( CSS ) طرحبندی، فونت، رنگها و جنبههای بصری رابط کاربری را کنترل میکند. آنها معمولا ثابت هستند و روی محتوای HTML در مرورگر اعمال می شوند. |
صوتی و تصویری | فایل های صوتی و تصویری دارایی های ثابتی هستند که می توانند در برنامه شما تعبیه شوند یا از طریق پخش کننده های رسانه ارائه شوند. |
جاوا اسکریپت | فایلهای جاوا اسکریپت استاتیک ( JS ) شامل کد سمت سرویس گیرنده است که به تعامل با برنامه کمک میکند. این اسکریپت ها در مرورگر کاربر اجرا می شوند و تأیید فرم و بارگذاری محتوای پویا را مدیریت می کنند. کتابخانههای جاوا اسکریپت شخص ثالث، مانند jQuery، و افزونهها زمانی که عملکرد برنامه وب شما را بهبود میبخشند، بهعنوان فایلهای ثابت گنجانده میشوند. |
WASM | WebAssembly ( WASM ) فایل هایی هستند که یک VM مبتنی بر پشته را در مرورگر با عملکردی نزدیک به سخت افزار اجرا می کنند و می توان آنها را از زبان های مختلف کامپایل کرد. |
دارایی های استاتیک معمولاً در وب سرور ذخیره می شوند یا از طریق CDN ها ارائه می شوند. توسعه دهندگان می توانند از تکنیک هایی مانند بهینه سازی دارایی، کوچک سازی و فشرده سازی برای کاهش اندازه فایل دارایی های ثابت استفاده کنند. این عملکرد صفحه را بهبود می بخشد. همچنین باید استراتژیهای کش مناسب را برای کاهش نیاز به دانلودهای مکرر در هنگام بازدید مجدد کاربران از وبسایتها در نظر بگیرید.
در web.dev درباره CSS و HTML بیشتر بیاموزید.
داده ها و دارایی های کش
ذخیره سازی در یک برنامه وب مبتنی بر محتوا شامل ذخیره و استفاده مجدد از داده ها و دارایی های قبلی واکشی یا تولید شده است. این یک تکنیک بهینه سازی مهم است که به ارائه سریع محتوا به کاربران کمک می کند، به ویژه برای داده ها و دارایی های ثابت که اغلب به آنها دسترسی دارند. حافظه پنهان عملکرد را بهبود می بخشد، بار سرور را کاهش می دهد و تأخیر برنامه های وب مبتنی بر محتوا را به حداقل می رساند.
این جدول توضیحاتی در مورد انواع مختلف حافظه پنهان ارائه می دهد.
انواع | |
---|---|
ذخیره مرورگر | مرورگر کاربر می تواند دارایی های ثابت مانند تصاویر، شیوه نامه ها و فایل های جاوا اسکریپت را در حافظه پنهان کند. هنگامی که کاربر به همان وب سایت باز می گردد، این دارایی ها می توانند از حافظه پنهان محلی بارگیری شوند. |
کش سمت سرور | معمولاً برنامههای محتوا محور از مکانیسمهای کش سمت سرور برای ذخیره محتوای ثابت، نتایج جستجوی پایگاه داده یا حتی کل صفحات وب استفاده میکنند. روشهای متداول ذخیرهسازی سمت سرور شامل پراکسیهای معکوس (Nginx، Varnish)، کشهای درون حافظه (Redis، Memcached) و ذخیرهسازی نتایج جستجوی پایگاه داده است. |
ذخیره سازی CDN | CDN ها می توانند دارایی های استاتیک را در حافظه پنهان و توزیع در سرورهای لبه نزدیک به کاربران انجام دهند و سرعت تحویل را بهبود بخشند. |
ذخیره پرس و جو در پایگاه داده | کش کردن کوئری پایگاه داده نتایج پرس و جوهای مکرر پایگاه داده را در حافظه یا حافظه پنهان ذخیره می کند. این نوع عملکرد پایگاه داده را بهبود می بخشد زیرا نیاز به اجرای مجدد همان پرس و جو برای درخواست های مشابه را کاهش می دهد. |
ذخیره سازی کارگر سرویس | کش سرویس به برنامههای کاربردی وب امکان میدهد تا منابعی مانند فایلهای HTML، CSS یا جاوا اسکریپت را بهطور مستقل از رشته اجرایی اصلی صفحه وب، حافظه پنهان و مدیریت کنند. آنها در پس زمینه اجرا می شوند و به عنوان واسطه بین برنامه و شبکه عمل می کنند. از مزایای آن می توان به قابلیت های آفلاین و کاهش استفاده از پهنای باند اشاره کرد. |
نحوه کش کردن دارایی ها
مهم است که حافظه پنهان و بهروزرسانی به موقع را متعادل کنید تا کاربران جدیدترین محتوا را دریافت کنند و در هنگام دسترسی به برنامه وب شما تجربه مثبتی داشته باشند. به یاد داشته باشید، همه دارایی ها نیازی به ذخیره سازی در حافظه پنهان ندارند. لازم نیست محتوای پویا مانند صفحات HTML که توسط یک اسکریپت سمت سرور تولید شده اند را کش کنید. داراییهای استاتیک را میتوان برای مدت زمان مشخصی یا تا زمانی که در سرور بهروزرسانی شوند، کش کرد. طرح پیاده سازی برای استراتژی ذخیره سازی شما بستگی به نوع ذخیره سازی دارد که می خواهید انجام دهید. به عنوان مثال، میتوانید کش مرورگر را با استفاده از هدر Cache-Control در پاسخهای HTTP خود پیادهسازی کنید، یا با استفاده از Cache API ، کش کردن کار با سرویس را پیادهسازی کنید.
توصیه می شود از یک سیستم نسخه سازی برای دارایی های ذخیره شده خود استفاده کنید. این به شما امکان می دهد دارایی های ذخیره شده را بدون باطل کردن آنها به روز کنید. مطمئن شوید که استفاده از حافظه پنهان خود را کنترل کرده و در صورت لزوم تنظیمات را انجام دهید. میتوانید در web.dev درباره کش کردن اطلاعات بیشتر بیاموزید .
مقیاس بندی
مقیاسبندی یک برنامه وب مبتنی بر محتوا شامل اجرای یک برنامه استراتژیک برای مدیریت افزایش ترافیک و دادهها و در عین حال حفظ کارایی و قابلیت اطمینان برنامه است. فرآیند مقیاسبندی به برنامهریزی، نظارت و انعطافپذیری برای مدیریت الگوهای ترافیکی و حجم دادههای نوسان نیاز دارد. هنگامی که برنامه وب خود را مقیاس بندی می کنید، باید بین بهینه سازی عملکرد و مدیریت هزینه های زیرساخت تعادل برقرار کنید.
متعادل کننده بار ترافیک را بین سرورهای مختلف توزیع می کند. این کمک می کند تا اطمینان حاصل شود که برنامه شما می تواند ترافیک افزایش یافته را به طور موثر مدیریت کند. شما می توانید با پیاده سازی مکانیسم های کش، بار روی سرورهای خود را کاهش دهید. CDN ها همچنین می توانند برای ذخیره دارایی های ثابت و توزیع محتوا ارزشمند باشند و در نتیجه تاخیر را کاهش دهند. همچنین میتوانید از مقیاسکنندههای خودکار استفاده کنید تا بهطور خودکار برنامهتان را در صورت نیاز، کم یا زیاد کنید. Autoscalers می تواند اطمینان حاصل کند که برنامه شما منابع مورد نیاز برای مدیریت سطح ترافیک فعلی را دارد. رویکرد و استراتژی مقیاسبندی شما نیازمند نظارت مؤثر و تنظیم عملکرد است. مطمئن شوید که به طور منظم داده های عملکرد را تجزیه و تحلیل کنید و در صورت نیاز تنظیمات زیرساخت و کد خود را انجام دهید.
تاخیر
تأخیر، تأخیر زمانی یا تأخیر زمانی است که کاربر با برنامههای وب شما تعامل میکند. مدت زمانی است که طول می کشد تا درخواست وب از مرورگر یا دستگاه کاربر به سرور وب برود و پاسخ به دستگاه کاربر برگردد. معمولاً در میلی ثانیه (ms) اندازه گیری می شود. تأخیر به شدت بر تجربه کاربر تأثیر می گذارد زیرا می تواند منجر به ناامیدی و ناامیدی کاربر شود.
عوامل مؤثر بر تأخیر عبارتند از:
عوامل | |
---|---|
تأخیر شبکه | فاصله بین کاربر برنامه وب و سرور، مسیریابی داده ها و کیفیت اتصال شبکه می تواند بر تأخیر شبکه تأثیر بگذارد. |
زمان پردازش سرور | زمان پردازش سرور به پیچیدگی درخواست و عملکرد سرور بستگی دارد. |
زمان تحویل محتوا | زمان تحویل محتوا تحت تأثیر مکان سرور، CDN ها و بهینه سازی دارایی است. این به زمان بارگیری تصاویر، شیوه نامه ها، اسکریپت ها و سایر دارایی های مورد نیاز برای ارائه یک صفحه وب اشاره دارد. |
استراتژی بارگذاری محتوا | استراتژیهایی مانند واکشی از قبل، بارگیری ناهمزمان محتوا، و بارگذاری تنبل بر تأخیر درک شده تأثیر میگذارند زیرا اغلب بارگذاری محتوای مهم را در اولویت قرار میدهند. |
شما میتوانید تاخیر را با استفاده از تکنیکهایی مانند حافظه پنهان محتوا، بهینهسازی تحویل محتوا، تنظیم عملکرد سرور و با استفاده از CDN برای به حداقل رساندن RTT بهبود بخشید.