مالیات کارتخوان در سال ۱۴۰۳ چگونه محاسبه میشود؟
مالیات بر دستگاههای کارتخوان در سال ۱۴۰۳ یکی از موارد مهم در زمینه مالیات بر…
۳۰ آبان ۱۴۰۳
۱۷ خرداد ۱۴۰۲
زمان مطالعه : ۱۳ دقیقه
کلودفلر Worker ابزار ویژهای است که به سرعت بخشیدن به وب سایتها و برنامهها کمک میکند. کلودفلر Worker این کار را با اجرای یک قطعه کد کوچک در مکانهای مختلف در سراسر جهان، نزدیک به افرادی که از آن وبسایتها یا برنامهها استفاده میکنند، انجام میدهد. این باعث میشود وبسایتها و برنامهها به سرعت پاسخ دهند زیرا کد در فاصله نزدیک به آنها اجرا میشود. کلودفلر Worker همچنین به توسعهدهندگان کمک میکند تا با مراقبت از مسائل فنی، زمان و تلاش کمتری صرف کنند زیرا کارهایی که باید آنها انجام دهند توسط کدهای کوچکی به نام Worker بهینهسازی شده است.
کلودفلر Worker سرویسی است توسط شرکت Cloudflare ارائه میشود و به برنامهنویسان اجازه میدهد کدهای خود را در سمت نزدیک به کاربران اجرا کنند. در دنیای اینترنت یک سرویسدهنده (سرور) داریم و یک سرویسگیرنده (کلاینت) که از سرور خدمات میگیرد. کلودفلر میان این دو تا قرار میگیرد و با توزیع جغرافیایی در سراسر جهان، خدمات سرور را از فاصله کوتاهتر و باسرعت بیشتر در اختیار سرویسگیرنده قرار میدهد.
این کار با استفاده از قطعات کوچک کد به نام “کارگر یا Worker” در سرورهای لبه شبکه کلودفلر انجام میشود. این سرورهای لبه در بسیاری از مکانهای مختلف در سطح جهان قرار دارند، به این معنی که کد نزدیکتر به کاربران اجرا میشود و در نتیجه برنامههای کاربردی سریعتر و پاسخگوتر هستند.
وقتی میگویم «نزدیکتر به کاربران در سراسر جهان»، به نزدیکی فیزیکی سرورهایی که کد را اجرا میکنند به کاربران نهایی اشاره میکنیم. کلودفلر دارای یک شبکه جهانی گسترده از مراکز داده است که در مکان های مختلف در سراسر جهان گسترده شده است. این مراکز داده در کشورها و شهرهای مختلف قرار دارند تا فاصله بین کاربران و سرورها را به حداقل برسانند. هنگامی که کاربر با استفاده از کلودفلر Worker درخواستی را به وب سایت یا برنامهای ارائه میکند، درخواست به نزدیکترین سرور لبه در شبکه کلودفلر هدایت می شود.
با کلودفلر Worker، توسعهدهندگان نیازی به نگرانی در مورد راهاندازی و مدیریت سرورهای خود ندارند. آنها میتوانند کد خود را در جاوا اسکریپت یا WebAssembly بنویسند و آن را در شبکه کلودفلر قرار دهند. این کد میتواند توسط رویدادهایی مانند درخواستهای HTTP یا تایمرها فعال شود و به توسعهدهندگان این امکان را میدهد تا برنامههایی بسازند که به اقدامات کاربر در زمان واقعی پاسخ دهند.
اگرچه کلودفلر Worker مشابه با جاوااسکریپت در مرورگر رفتار میکنند، اما تفاوتهایی در مورد کد وجود دارد. Workerها از موتور V8 استفاده میکند. همان موتور مورد استفاده Chromium و Node.js است. Workerها همچنین بسیاری از APIهای استاندارد موجود در اکثر مرورگرهای مدرن را پیادهسازی میکنند.
تفاوت بین جاوااسکریپت نوشته شده برای مرورگر یا Node.js در زمان اجرا اتفاق میافتد. توابع Worker به جای کارکردن روی دستگاه یک فرد، در شبکه Cloudflare’s Edge اجرا میشوند که یک شبکه جهانی در حال رشد از هزاران دستگاه توزیع شده در صدها مکان است.
هر یک از ماشینها که Worker را میزبانی میکنند قادر به اجرای هزاران برنامه تعریف شده توسط کاربر هستند. در این مقاله به بررسی چند نمونه از تفاوتهای کلودفلر Worker با جاوااسکریپت مرورگر میپردازیم.
کلودفلر Worker روی سرورهای لبه در شبکه جهانی کلودفلر اجرا میشود، در حالی که مرورگر جاوا اسکریپت در مرورگر وب کاربر اجرا میشود. کلودفلر Worker، کدها را نزدیک به کاربر اجرا میکنند و تأخیر را کاهش میدهند و عملکرد را بهبود میبخشند.
جاوا اسکریپت مرورگر به APIهای مختلف مرورگر دسترسی مستقیم دارد، مانند DOM API برای دستکاری عناصر صفحه وب، Fetch API برای ایجاد درخواستهای HTTP و Web Storage API برای ذخیره دادهها به صورت محلی. از طرف دیگر، کلودفلر Worker دسترسی مستقیم به این APIهای خاص مرورگر ندارند زیرا خارج از محیط مرورگر اجرا میشوند.
کلودفلر Worker از مزیت اجرای کد در نزدیکی مراکز داده کلودفلر در سراسر جهان برخوردارند. این امکان برقراری ارتباط شبکهای سریعتر بین سرویسهای Worker و کلودفلر را فراهم میکند. در مقابل، مرورگر جاوا اسکریپت با سرورها از طریق اینترنت ارتباط برقرار میکند و عملکرد میتواند تحت تأثیر عواملی مانند تأخیر شبکه و پهنای باند قرار گیرد.
کلودفلر Worker در یک محیط امن ارائه شده توسط کلودفلر اجرا میشوند. آنها از سایر Workerها جدا شدهاند و دسترسی محدودی به زیرساختهای اساسی دارند. مرورگر جاوا اسکریپت در چارچوب امنیتی مرورگر کاربر عمل میکند، محدودیتهای خاصی برای محافظت از حریم خصوصی کاربر و جلوگیری از فعالیتهای مخرب دارد.
هنگام کار با کلودفلر Workers، توسعهدهندگان معمولاً کد خود را با استفاده از یک ویرایشگر متن یا یک محیط توسعه یکپارچه (IDE) مینویسند و سپس آن را در پلتفرم کلودفلر مستقر میکنند. از طرف دیگر، جاوا اسکریپت مرورگر معمولاً مستقیماً در اسناد HTML جاسازی میشود یا به عنوان فایلهای اسکریپت خارجی پیوند داده میشود.
کلودفلر Workers دارای محدودیتهای منابع خاصی هستند، مانند محدودیتهای زمانی اجرا و محدودیتهای حافظه، که توسط پلتفرم کلودفلر اعمال میشود. در مقابل، مرورگر جاوا اسکریپت از نظر استفاده از منابع انعطافپذیری بیشتری دارد زیرا مستقیماً در دستگاه کاربر اجرا میشود.
به طور خلاصه، Cloudflare Workers توسعهدهندگان را قادر میسازد تا کدی را بنویسند و به کار گیرند که در سرورهای لبه کلودفلر در سطح جهان اجرا میشود. این رویکرد کد را به کاربران نزدیکتر میکند و امکان پردازش سریعتر، بهبود عملکرد و کاهش تاخیر را فراهم میکند. Cloudflare Workers مقیاسپذیری، قابلیتهای رویداد محور و ادغام با سایر سرویسهای Cloudflare را فراهم میکند و ساخت برنامههای کارآمد و پاسخگو را برای توسعهدهندگان آسانتر میکند. مراحل تولید و اجرا ورکرهای کلودفلر به شرح زیر است:
برنامهنویسی: توسعهدهندگان با استفاده از جاوا اسکریپت یا WebAssembly، با استفاده از ویرایشگر متن یا IDE ترجیحی خود، کد مینویسند. آنها میتوانند عملکردهایی مانند نقاط پایانی API، درخواست مسیریابی، دستکاری دادهها یا هر منطق سفارشی مورد نیاز برای برنامه خود را ایجاد کنند.
استقرار کد: کد در شبکه سرورهای لبه کلودفلر مستقر میشود. این کار با آپلود کد در پلتفرم کلودفلر یا استفاده از ابزارهایی مانند Cloudflare Workers API انجام میشود.
اجرا در لبه: هنگامی که یک کاربر درخواستی را به یک وب سایت یا برنامه میدهد، آن درخواست به نزدیکترین سرور Cloudflare Edge هدایت میشود. کد مستقر شده که به عنوان ورکر شناخته میشود، در این سرور لبه اجرا میشود.
پردازش و پاسخ: ورکر کد را اجرا میکند و وظایف یا منطق مشخص شده را انجام میدهد. میتواند درخواستها و پاسخها را دستکاری کند، تماسهای API برقرار کند، به فروشگاههای داده خارجی مانند کلودفلر Workers KV و غیره دسترسی پیدا کند. ورکر پاسخی را ایجاد میکند که به دستگاه کاربر ارسال میشود.
پوشش جهانی و عملکرد: کلودفلر دارای سرورهای لبه متعددی است که در سرتاسر جهان قرار دارند و اطمینان میدهند که کد به کاربران نهایی نزدیکتر است. این باعث کاهش تاخیر و بهبود عملکرد با به حداقل رساندن مسافتی مورد نیاز برای طی کردن میشود.
مقیاسپذیری و رویداد محور: ورکر کلودفلر بهطور خودکار مقیاس میشوند (در سرورهای مختلف توزیع میشوند) تا حجم ترافیک بالا را مدیریت کنند و اطمینان حاصل کنند که برنامهها تحت بار پاسخگو باقی میمانند. ورکرها رویداد محور هستند، به این معنی که میتوانند توسط رویدادهایی مانند درخواستهای HTTP، تایمرهای زمانبندیشده یا تغییرات در زیرساختهای کلودفلر فعال شوند.
کلودفلر ورکر را میتوان توسط رویدادها یا شرایط مختلف فعال کرد. در اینجا چند محرک رایج را مرور میکنیم که میتواند یک Cloudflare Worker را فعال کند:
درخواستهای HTTP: کارگران میتوانند با درخواستهای HTTP ورودی به آدرسها یا مسیرهای خاص فعال شوند. به عنوان مثال، میتوانید یک Worker را پیکربندی کنید تا به درخواستهای یک نقطه پایانی خاص مانند “/api/users” پاسخ دهد یا تمام درخواستهای یک دامنه را رسیدگی کند.
تطبیق مسیر: کارگران را میتوان بر اساس الگوهای مسیر در URL فعال کرد. این به شما امکان میدهد روند مشخص را برای مسیرها یا URLهای مختلف تعریف کنید. به عنوان مثال، میتوانید یک Worker داشته باشید که درخواستهای «/blog/» را مدیریت میکند و یک Worker دیگر برای «/api/».
تایمرهای برنامهریزی شده: میتوان با استفاده از تایمر، ورکر را در فواصل زمانی مشخصی برنامهریزی کرد. این به شما امکان میدهد کارهای تکراری را انجام دهید یا کد را در زمانهای خاص اجرا کنید. به عنوان مثال، میتوانید یک ورکر را برنامهریزی کنید تا هر روز یک عملیات پاکسازی را انجام دهد یا یک ایمیل روزانه ارسال کند.
Background Fetch: کلودفلر ورکر از Background Fetch API پشتیبانی میکند، که به شما امکان میدهد درخواستهای واکشی را از Worker حتی زمانی که کاربر به طور فعال با وبسایت تعامل ندارد، آغاز کنید. این کار میتواند برای به روزرسانی دادهها در پس زمینه مفید باشد.
رویدادهای کلودفلر: کلودفلر رویدادهای مختلفی را ارائه میکند که میتوانند Workers را فعال کنند، مانند تغییرات در رکوردهای DNS، تغییرات در اسکریپتهای Cloudflare Workers یا تغییرات در تنظیمات پیکربندی Cloudflare. این به شما امکان میدهد به تغییرات زیرساخت یا پیکربندی به صورت پویا پاسخ دهید.
محرکهای سفارشی: ورکرهای Cloudflare همچنین مکانیسمهایی را برای محرکهای سفارشی و مدیریت رویداد ارائه میدهند. میتوانید به رویدادها یا سیگنالهای خاصی در کد خود گوش دهید و بر این اساس اقدامات خاصی را آغاز کنید.
جاوا اسکریپت بدون سرور کد جاوا اسکریپتی است که شامل تمام یا بخشی از برنامه است و فقط در صورت درخواست اجرا میشود و در سرورهای اختصاصی میزبانی نمیشود. این قابلیت، برنامهنویسان را قادر میسازد تا برنامههای بدون سرور high-performance و low-latency را که در شبکه اجرا میشوند را ایجاد کنند.
Serverless JavaScript در یک لبه شبکه یا توسط HTTP caching service میزبانی میشود، که محتوا را برای پاسخ سریع به درخواستهای HTTP ذخیره میکند. توسعهدهندگان میتوانند توابع جاوااسکریپت را که درخواستهای HTTP را قبل از سفر به سمت سرور پردازش و مستقر میکنند بنویسند و اجرا کنند.
با استفاده از جاوااسکریپت بدون سرور، میتوان با اجرای کد در لبه یا ایجاد یک برنامه جدید و کاملاً بدون سرور که سریع و بسیار مقیاس پذیر است قابلیت گسترش عملکرد و تجربه کاربر در مورد برنامهها را بهبود بخشید.کلودفلر Worker یک پلت فرم جاوا اسکریپت بدون سرور است.
Varnish یک شتابدهنده وب است که برای سرعت بخشیدن به برنامههای وب و بهبود عملکرد وب سایت طراحی شده است. آن یک پروکسی معکوس HTTP ذخیره شده است به این معنا که در مقابل هر وب سرور قرار دارد و ترافیک HTTP را با ذخیرهسازی یا ذخیره هر گونه محتوایی که اغلب توسط مشتریان وب درخواست میشود، به آن سرور شتاب میدهد.
زبان پیکربندی Varnish یا VCL برای Varnish استفاده میشود و به توسعه دهندگان اجازه میدهد تا نحوه مدیریت درخواستهای وب وارنیش را مدیریت کنند.
VCL یک زبان پیکربندی است که برای پیکربندی حافظه نهان وارنیش طراحی شده است. VCL به اندازه کافی برای ساخت و گسترش یک برنامه قوی نیست و در مقایسه با قابلیتهای جاوا اسکریپت محدود است. در ضمن، VCL در خارج از اجرای وارنیش قابل استفاده نیست و در نتیجه بیشتر توسعه دهندگان با آن آشنا نیستند. درصورتیکه، جاوااسکرپیت زبانی گسترده است و برای ساخت برنامه مورد استفاده قرار میگیرد. استفاده از جاوا اسکریپت در یک معماری بدون سرور به توسعه دهندگان اجازه میدهد تا برنامههای کاملی را به زبانی که با آن آشنا هستند ایجاد کنند.
جاوا اسکریپت بدون سرور به گروه گستردهتری از توسعهدهندگان اجازه میدهد تا محاسبات بدون سرور را در لبه استفاده کنند تا بتوانند انواع بیشتری از برنامهها را بسازند.
Serverless JavaScript در یک شبکه حافظه پنهان HTTP اجرا میشود، که به کاربر نهایی نزدیکتر از کد میزبانی شده در سرور مبدأ است. در نتیجه درخواستها نیازی به سفر به سرور مبدأ و بازگشت از آنجا ندارند و برنامه خیلی سریعتر به تعامل کاربر پاسخ میدهد. هر چه تعداد لبهها توزیع شده بیشتر باشد تأخیر بیشتر کاهش مییابد.
در یک مدل بدون سرور، برنامه به توابعی تقسیم بندی میشود و کد تابع در پاسخ به رویدادهای معینی اجرا میشود. در غیر اینصورت اجرا نمیشود. رویدادی که باعث ایجاد جاوا اسکریپت بدون سرور میشود یک درخواست HTTP است. توسعهدهندگان میتوانند نوع درخواستهای HTTP را که توابع جاوااسکریپت به آنها پاسخ میدهند، تغییر یا انجام دادن درخواست HTTP را سفارشی سازی کنند.
این درخواستی است که از طریق HTTP از سمت مشتری به سرور ارسال میشود. مرورگرها اقدامات کاربر، مانند کلیک کردن بر روی لینک یا ارسال فرم را به درخواستهای HTTP ترجمه میکنند. درخواست سپس به سرور ارسال میشود و سرور پاسخ HTTP را برای انجام درخواست ارسال میکند. یک درخواست HTTP نیز زمانی اتفاق میافتد که برنامه یک API را صدا میزند.
حافظه پنهان HTTP زمانی است که سرور یا مرورگر یک نسخه از پاسخ به درخواست HTTP کاربر را ذخیره میکند تا بتواند سریعتر به درخواستهای آینده پاسخ دهد. سرور CDN نمونهای از کش HTTP است. برخی از قابلیتهای حافظه پنهان HTTP توسعه دهندگان را قادر میسازد تا نحوه کار حافظه پنهان HTTP را برای برنامههای کاربردی خود تنظیم کنند.
Cloudflare یک شبکه HTTP caching edge با مراکز داده در سراسر جهان است و به توسعه دهندگان این امکان را میدهد تا جاوا اسکریپت خود را در لبه شبکه بنویسند و مستقر کنند. در شبکه Cloudflare، کش HTTP در هیچ سرور خاصی صورت نمیگیرد، بلکه در هر مرکز داده نزدیک به منبع درخواست HTTP اتفاق میافتد.
service Worker اسکریپتهایی هستند که به منظور ایجاد تجربیات سفارشی برای کاربران، مرورگرها را بارگیری و اجرا میکنند. service Worker سرویسهایی مانند اعلانهای فشار، همگام سازی پس زمینه و عملکرد آفلاین را در مرورگر امکانپذیر میسازند. قبل از رسیدن درخواستها به اینترنت، آنها در جاوااسکریپت نوشته، رهگیری، اصلاح و پاسخ داده میشوند.
Cloudflare ورکر بستری برای فعال کردن توابع بدون سرور هستند تا بتوانند حدالامکان به کاربر نهایی نزدیک شوند. در واقع، کد بدون سرور به خودی خود در شبکه ذخیره شده است و هنگام دریافت نوع مناسب درخواست اجرا میشود. Cloudflare Worker در جاوااسکریپت در برابر service Worker API نوشته شدهاند، به این معنا که میتوانند از تمام عملکردهای ارائه شده توسط service worker استفاده کنند. آنها از موتور Chrome V8 برای اجرا استفاده میکنند. کد Cloudflare Worker در شبکه گستردهای از مراکز داده Cloudflare’s در سراسر جهان میزبانی میشوند.
Chrome V8 که به نام V8 نیز شناخته میشود یک موتور جاوااسکریپت است که برای تهیه، بهینه سازی و اجرای جاوااسکریپت ساخته شده است. با استفاده از V8 برای اجرای کد جاوااسکریپت، زمان راه اندازی برای JavaScript Worker بسیار کاهش مییابد و مسئله شروع سرد در بیشتر موارد از بین میرود. V8 همچنین برای آسیب پذیریهای امنیتی به شدت مورد تجزیه و تجلیل قرار میگیرد و آن را برای اجرای ایمن کد جاوااسکریپت ایدهآل میکند.
یکی از تفاوتهای مهم بین Cloudflare Worker در مقایسه با service Worker در این است که کارگران سرویس از طرف مشتری اجرا میشوند و باید توسط مرورگر کاربر بارگیری شوند، در حالی که کارگران Cloudflare در حاشیه شبکه Cloudflare بین کاربر و بقیه اجرا میشوند و به طور موثری در درون خود شبکه اجرا میشود.