وب هوک یک اسم آشنا در برنامهنویسی است که احتمالا این روزها زیاد با آن برخورد کردهاید. تابهحال به کارآمدی نوتیفیکیشن یا پیامک دقت کردهاید؟ شما بدون اینکه نیاز به سرکشیکردن به برنامه یا وب خاصی داشته باشید، میتوانید هر زمان که اتفاقی افتاد، از آن مطلع شوید. حالا ممکن است بپرسید که Notification چه ارتباطی با Webhook دارد؟
بهتر است توجه کنید که وب هوک یک نوتیفیکیشن نیست؛ اما در نحوه عملکرد، این دو به هم شباهت زیادی دارند. برای اینکه بیشتر متوجه مسئله شوید، بهتر است ادامهی این مطلب که در رابطه با “webhook چیست” میباشد را از دست ندهید. هر اطلاعاتی که درباره وب هوک و یا موارد مرتبط با فناوری و شبکه نیاز داشته باشید، ما در کندو در عرض چند دقیقه در اختیار شما قرار میدهیم. پس، این شما و این وب هوک
وب هوک چیست؟
معنی webhook چیست؟ به پیام خودکاری که زمان وقوع یک اتفاق توسط اپلیکیشنها ارسال میشود، webhook میگویند. منظور از پیام، یک بسته شامل اطلاعات (Payload) و دادههایی است که به URL فرستاده میشوند. وب هوک در واقع فراخوانی از جنس HTTP از جانب سرور است که برنامهنویس آن را تعیین میکند. بهعلاوه وب هوک یکی از روشهای برقراری ارتباط بین برنامههاست.
در یک پروژهی توسعهی اپ میتوان بهواسطهی وب هوک از API های شخص ثالث استفاده کرد؛ بطوریکه بهمحض وقوع یک جریان یا اتفاق (Event)، دادههای آنی سریعا از اپلیکیشنی به اپلیکیشن دیگر منتقل شوند. فرض کنید که شما صاحب سایتی هستید که مخزن گیتهاب دارد و قصد دارید که بهسرعت از ورود شخصی به سایت و یا push شدن مخزن، مطلع شوید؛ اما چطور؟ مثلا از طریق تلگرام. با انجام تنظیمات مرتبط با webhook بهراحتی میتوانید که با برقراری ارتباط بین وب و تلگرام خود هر ورودی را کنترل کنید. این تنها یکی از سادهترین کاربردهای این سیستم میباشد.
اما برای اینکه webhook چیست را کاملا درک کنید، بهتر است معنی رویداد یا اتفاق (Event) را هم بدانید. اعمال برانگیختهای که توسط ما در یک وبسایت یا اپ انجام میشوند، از جمله ورود به صفحه وب، کلیک بر گزینه افزودن به سبد خرید، ارسال پیام و… هرکدام میتوانند یک رویداد باشند. این رویدادها توسط شخصی که از وب هوک استفاده میکند، تعیین میشوند.
انواع وب هوک
جالب است بدانید که webhookها به 2 دسته تقسیم میشوند. بهتر است آنها را با اطلاع از اینکه webhook چیست، بیاموزید.
- وب هوک همگام (sync)
تحت این وب هوک، تا زمانی که پاسخ فراخوان برگردد، اجرای تابع متوقف میشود. در ادامه این جواب در روند اصلی مورد استفاده قرار میگیرد. اگر بخواهیم به یک مثال از این نوع وب هوکها اشاره کنیم، میتوانیم PreMatchmaking را نام ببریم.
- وب هوک ناهمگام (async)
وبهوک ناهمگام با روند اصلی به طور موازی رفتار میکند. رفتار موازی به این معناست که تاخیر، موفقیت، شکست وب هوک و یا هیچچیز دیگری، تاثیری در اجرای وب هوک ندارد.
کاربردهای webhook چیست؟
دانستن کاربردهای webhook بخشی از چیزی است که باید در موضوع webhook چیست حتما مورد بررسی قرار بگیرد. از جمله کاربردهای آن میتوان به این موارد اشاره کرد
- مدیریت پیامهای متنی
انواع مختلفی از وب هوکها برای مدیریت پیامهای متنی استفاده میشوند که از مهمترین آنها میتوان به Twilio اشاره کرد. این نوع از webhookها در دریافت پیام کوتاه و یا تماس تلفنی قابلاستفاده هستند. به این معنا که هر زمان کسی با شماره Twilio از طریق تماس تلفنی و یا پیامک کوتاه با ما ارتباط برقرار کند، یک درخواست HTTP POST به آدرس اینترنتی ارسال میشود. این درخواست شامل دادههای پیامکی و تماس برقرارشده است. در این حالت شما میتوانید به طور خودکار به آن رسیدگی کنید
- پردازش ایمیل
ارسال و دریافت ایمیل همیشه به تخصص خاصی نیاز دارد. Sendgrid، Mailchomp و Mailgun برای همین کار به وجود آمدهاند. این متخصصین میتوانند AIPهایی از ارسال و دریافت ایمیل را در اختیار شما بگذارند. در نهایت با این امکان، فرستادن و گرفتن ایمیل نهتنها بهراحتی انجام میگیرد، بلکه قابل کنترل هم هست.
اما کاربردهای webhook تنها به این نقطه ختم نمیشوند؛ رسیدگی به پرداخت و جوابدادن به تغییرات کد هم از مثالهای دیگر بهکارگیری آن هستند.
راهاندازی webhook چطور انجام میشود؟
ارائهی تعریفی از اینکه webhook چیست، بهتنهایی کافی نیست و بهتر است درباره راهاندازی آن هم نکات لازم را بدانید تا بدون هیچ مشکلی بتوانید به طور عملی از webhook استفاده کنید. برای راهاندازی وب هوک کافی است این 3 مرحله را به ترتیب انجام بدهید:
- دریافت URL وب هوک ارسالکنندهی داده
- دریافت URL وب هوک اپلیکیشنی که داده را دریافت میکند.
- تعیین و انتخاب رویدادهایی که اپ ارسالکننده داده، باید اطلاعات را بر مبنای آنها ارسال کند.
نکات مهم در رابطه با webhook
موقع استفاده از وب هوک باید نهایت دقت را بکار ببرید؛ چون در غیر این صورت ممکن است مشکلاتی به وجود بیایند. مشکلاتی که در کنار تعریف webhook چیست باید بدانید، شامل موارد زیر میشوند:
- امکان قرارگیری دادهها در معرض نابودی
دادههای ارسالی وب هوک ممکن است پس از ارسال، از توجه به دادههای بعدی جلوگیری کنند و در این حالت امکان حذف اطلاعات وجود دارد. بااینحال بیشتر webhookها با ایجاد چنین شرایطی، با بررسی مجدد پاسخها، درخواستها را دوباره ارسال میکنند
- عدم مقاومت برنامه در برابر حمله DDOS
دریافت درخواستهای زیاد، همیشه هم نکته مثبتی نیست. بهعبارتدیگر اگر ارسالکننده وب هوک، رویدادهای زیادی برای گزارش داشته باشد، ممکن است برنامه شما تحت حمله DDOS قرار بگیرد. بااینحال برای پیشگیری از این مشکل، راه چاره وجود دارد. برنامه باید بتواند آن میزان وب هوک مورد انتظار شما را مدیریت کند. پس باید بین وب هوک و توانایی برنامه در کنترل آن، هماهنگی و تعادل ایجاد شود. در غیر این صورت تنها به دریافت حجم زیادی از داده و DDOS ختم میشود.
جمعبندی
خب، حالا باتوجهبه مواردی که گفتیم، به نظر شما webhook چیست؟ اجازه بدهید به این شکل جمعبندی کنیم که وب هوک، یک پیام خودکار است که توسط اپلیکیشن ارسال میشود و به برقراری ارتباط بین اپها منجر میشود. پیام آن شامل رویدادی است که از قبل توسط ما انتخاب شده است. با این امکان، دیگر نیازی به سرکشی بیوقفهی شما در آن وب یا اپ کاربردی نیست و بهراحتی با یک وب هوک میتوانید از هرآنچه که میخواهید، مطلع شوید. همچنین در رابطه با کاربرد، انواع مختلف webhook و… هم به حد کافی صحبت شد. امیدواریم که از این مطلب در کندو نهایت استفاده را برده باشید. بعلاوه اگر به موضوعاتی مشابه مانند آموزش پایتون و یا هر چیز دیگری مرتبط با فناوری، شبکه و کامپیوتر علاقه دارید، حتما به مقالات دیگر کندو هم سر بزنید.