وبسایتهای استاتیک، جذبه جدیدی در توسعه وب هستند. وبسایتهای استاتیک به شدت قدرتمند، سریع و امن هستند و کار کردن با آنها بسیار ساده است. همه روزه میشنوم که مردم بیشتری وبسایتهای خود را به وبسایتهای استاتیک تبدیل میکنند. بیایید ۶ علت برای این مهاجرت را بررسی کنیم.
جدول محتویات:
- وبسایتهای استاتیک چه هستند؟
- ۱. سرعت
- ۲. سادگی در میزبانی
- ۳. امنیت
- ۴. تجربه توسعه دهنده
- ۵. پشتیبانی جامعه
- مواردی که باید در نظر داشته باشید
- خلاصه
وبسایتهای استاتیک چه هستند؟
دینامیک: فایلها به صورت دینامیک بر روی سرور تغییر مییابند و سپس به کاربر تحویل داده میشوند.
استاتیک: فایلها استاتیک (از پیش ساخته شده) هستند و بدون تغییری از سمت سرور، به کاربر تحویل داده میشوند.
بیایید با تعریف این که وبسایتهای استاتیک چه هستند، شروع کنیم. در ابتدا، عبارت «استاتیک» به این معنی نیست که وبسایت شما هیچگونه ظرفیت دینامیک ندارد. معنای آن به سادگی یعنی این که وبسایت شما از مجموعهای از فایلهای «از پیش ساخته شده» (مثلا فایلهای HTML، JS و CSS) تشکیل میشود که در هنگام درخواست، به طور مستقیم تحویل کاربر داده میشوند.
در سمت دیگر وبسایتهای دینامیک، با هر درخواستی که وارد میشود به طور دینامیک مجددا تولید میشوند.
به همین علت، شما به یک سرور (سروری که مدیریت نمیکنید یا برایش کد نمینویسید) مانند Node یا Apache نیازی ندارید. تمام چیزی که provider میزبان شما نیاز دارد، راهی برای برگرداندن داراییهای استاتیک است.
۱. سرعت
نکته: کمبود فراخوانیهای دیتابیس و تولید محتویات دینامیک، باعث میشود که وبسایتهای استاتیک بسیار سریع شوند.
توسعه دهندگان وب به طور مداوم در حال تلاش برای ارتقای سرعت هستند، که در عوض تجربه کاربری را ارتقا میدهد. آنها تمرکز زیادی بر روی «زمان تا اولین بایت» (TTFB = Time To First Byte) صرف میکنند. این زمان، برابر است با زمانی که طول میکشد تا از درخواست اولیه، به اولین بایت دریافت شده توسط مرورگر برسیم.
از آنجایی که محتویات از پیش ساخته شدهاند، زمانی که طول میکشد تا محتویات به طور دینامیک ساخته شوند، دیگر دیده نمیشود. این یعنی عدم وجود هیچگونه کوئری دیتابیس، هیچگونه الگوی HTML و...
همانطور که اشاره شد، وبسایتهای استاتیک به سروری نیاز ندارند که مجبور باشید مدیریت کنید. از آنجایی که این فایلها فقط فایلهای استاتیک هستند، تکرار شدنشان در تمام کامپیوترهای جهان، یک امر آسان است. این یعنی یک نفر که از ژاپن درخواستی را به وبسایت شما ارسال میکند، میتواند به جای این که از سمت دیگر دنیا پاسخ را دریافت کند، این کار از یک مرکز داده محلی (Local Data Center) انجام شود. شبکههای تحویل محتویات (CDNها = Content Delivery Network) ساخته شدهاند تا همین کار را انجام دهند، که این مسئله آنها را به وبسایتهای استاتیک میزبان عالیای تبدیل میکند.
۲. سادگی در میزبانی
سادگی در میزبانی چیزهای مشترک زیادی با منفعتهای سرعت دارد. همانطور که اشاره کردیم، تنها کاری که provider میزبان شما باید انجام دهد این است که داراییهای استاتیک را تحویل دهد. این میزبان نیازی ندارد که یک زبان یا فریموورک مشخص را پشتیبانی کند. در واقع، اصلا اهمیتی به جزئیات برنامه شما نمیدهد. فقط باید بداند که چگونه فایلها را تحویل دهد، و این که چگونه آنها را سریع تحویل دهد.
تمام providerهای ابری برتر، برنامههای مشخصی برای تحویل دادن وبسایتهای استاتیک دارند، اما تعداد کمی از میزبانهای جدید توانستند سر و صدا کنند. در اینجا چند میزبان عالی برای وبسایتهای استاتیک خود مشاهده مینمایید.
Netlify
Netlify یکی از اولین موارد در فراهم کردن JAM Stack (JavaScript، APIها و Markup) برای وبسایتهای استاتیک مدرن بود. استفاده از رابط آنها برای ما ساده است، و امکاناتی که فراهم میکنند، برای کار کردن با وبسایتهای استاتیک و مولدهای وبسایتهای استاتیک عالی هستند. من میزبانی یکی از وبسایتهای خود را به Netlify منتقل کردم و حال آن را خیلی دوست دارم.
Zeit
من همینطور بیشتر و بیشتر درباره Zeit و محصولاتی که دارند میشنوم. یکی از مواردی که تا به حال بسیار از آن لذت بردهام، Hyper است، که در واقع یک ترمینال ساخته شده در Electron میباشد. آنها همچنین با میزبانی Zeit Now، برای وبسایتهای استاتیک هم پشتیبانی دارند.
Amazon S3
پلتفرم ابری آمازون یا AWS، احتمالا اولین پلتفرم ابری عمومی بزرگ بود، که توسط افراد و شرکتهای مختلف استفاده میشد. آنها در طی سالها، به اضافه کردن امکانات مختلف به پلتفرم ادامه دادهاند؛ مانند میزبانی فایل با استفاده از S3 که میتوانید برای وبسایتهای استاتیک خود استفاده کنید.
پلتفرم ابری گوگل
در کنار Amazon، پلتفرم ابری گوگل هم یکی از بزرگترین و معروفترین موارد موجود است. آنها چندین سرویس مختلف دارند. یکی از موارد مورد علاقه من، Firebase است، که در واقع یکی از سادهترین راهها برای فراهم کردن سرویسهای Backend برای برنامه خود مانند یک دیتابیس، احراز هویت و... میباشد.
۳. امنیت
نکته: دیگر نیازی نیست که نسخه سرور خود را بروزرسانی کنید؛ زیرا شما همیشه بروز هستید!
یکی از بزرگترین عللی که سرورها هک میشوند، این است که از بروزرسانیها و patchها عقب هستند. اغلب patchهایی برای آسیبپذیری را در دسترس هستند، اما مردم باید آنها را نصب کنند؛ زیرا بروز ماندن با جریان دائم برطرفسازیهای امنیتی، شاهکار سادهای نیست.
گرچه با وبسایتهای استاتیک، شما نیازی ندارید که یک سرور را مدیریت کنید، و همچنین نیازی نیست که نگران بروزرسانیها، patchها و... باشید. دیگر نیازی به بروزرسانی PHP نیست. دیگر نیازی به بروزرسانی Wordpress نیست. دیگر نیازی به بروزرسانی Node نیست. شما همیشه بروز هستید.
این نگرانی امنیت به خصوص برای CMSهای مختلف معتبر است، به خصوص Wordpress. Wordpress به شدت معروف است، که در عوض باعث میشود یک هدف بزرگ باشد. منفعتهای واضح زیادی برای کار کردن با یک CSM به مانند Wordpress وجود دارند، اما این که مجبور باشید برای اهداف امنیتی بروز بمانید، قطعا یک عذاب بزرگ است.
همچنین بخوانید: معرفی ۱۰ افزونه محبوب وردپرس
۴. تجربه توسعه دهنده
نکته: پس از راهاندازی «گسترس مداوم» (Continuous Deployment)، فقط کد بنویسید و وبسایت را راهاندازی کنید!
جریان کاری / تجربه توسعه دهنده، احتمالا در هنگام در نظر گرفتن فناوریها، فریموورکها و ایدههای جدید، دست کم گرفته میشوند. در وبسایتهای استاتیک، تجربه یکی از مهمترین منفعتها است. پس از کمی راهاندازی اولیه، جریان کاری این وبسایتها بیهمتاست. یک جریان عادی، چنین ظاهری دارد:
شما به عنوان یک توسعه دهنده وبسایتهای استاتیک، این قدمها را در جریان کاری خود دنبال خواهید کرد:
- یک میزبان انتخاب میکنید و یک وبسایت میسازید.
- وبسایت خود را به کنترل منبع برای Continuous Deployment متصل میکنید.
- تغییرات را به وبسایت خود اعمال میکنید و آنها را در کنترل منبع بررسی میکنید.
- Continuous Deployment آخرین کد را میگیرد و ساخت خودکار داراییهای استاتیک را فعال میکند.
- وبسایت شما آماده به کار است.
به علاوه جریان کاری آن که ساده است، چندین مولد / فریموورک برای وبسایتهای استاتیک وجود دارند که این کار را حتی سادهتر هم میکنند. این مولدها، ابزاری را به همراه خود دارند که آماده استفاده هستند.
در اینجا برخی از معروفترین ولدهای وبسایتهای استاتیک در جامعه توسعه وب را مشاهده میکنید:
- Next
- Gatsby
- Hugo
- Jekyll
۵. پشتیبانی جامعه
من کمی به این مورد اشاره کردهام، اما جامعه، پشتیبانی زیادی پشت وبسایتهای استاتیک و مولد وبسایتهای استاتیک قرار میدهد. Netlify در ابتدا عبارت JAM Stack را به وجود آورد که حال تبدیل به یک نیروی رانش برای وبسایتهای استاتیک مدرن شده است.
نکته: Netlify یک کنفرانس سالانه به نام JAM Stack Conf را به همراه برخی پرچمداران این صنعت میزبانی میکند.
با وجود ازدیاد مولد وبسایتهای اساتیک موجود، همانطور که پیشتر اشاره شد گزینههای مختلفی برای توسعه دهندگان وجود دارند. همچنین گزینههای مختلفی برای زبانهای مختلفی مانند JavaScript، Go، Ruby و Vue وجود دارند.
مواردی که باید در نظر داشته باشید
به همراه هر فناوری، فریموورک و... جدید، موارد منفی زیادی وجود دارند و وبسایتهای استاتیک هم از این مسئله مستثنا نیستند. پس، همینطور که پیش میروید، این موارد را در ذهن داشته باشید:
- هر زمان که محتویاتی اضافه میکنید، باید وبسایت را مجددا بسازید.
- برای هر کاربر، محتویات دینامیک دریافت نخواهید کرد.
- مدیریت ورودها و فرمها به طور عمومی کمی پیچیده میشود.
- نیاز به dependencyها بر روی سرویسهای جداگانه برای عملکرد backend.
خلاصه
ایده وبسایتهای استاتیک جدید نیست، (همه وبسایتها در اصل استاتیک بودند) بلکه چیزی که این وبسایتها به آن تکامل یافتهاند جدید است. گزینههای زیادی برای مولدهای وبسایت استاتیک، و میزبانهای عالی زیادی وجود دارند. حداقل پیشنهاد میکنم که به یکی از وبسایتهای خود نگاهی داشته باشید و ببینید که میتوانید آن را تبدیل به یک وبسایت استاتیک نمایید یا نه. واضح است که منفعتهایی در این کار وجود دارند.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید