تفاوت بین متدهای HTTP شامل GET, POST, PUT, PATCH, DELETE

5 3,994

متدهای HTTP به عنوان یک رابط واحد برای دسترسی و ارسال اطلاعات به منابع مورد استفاده قرار می‌گیرند. معمول‌ترین متدهای موجود در پروتکل‌های HTTP عبارتند از:‌ POST, GET, PUT, PATCH و DELETE.

این متدها به ترتیب برای ساختن (Create)، خواندن (Read)، بروزرسانی (Update) و حذف کردن (Delete) مورد استفاده قرار می‌گیرند.

به مجموعه‌ی عملیات‌های ساختن، خواندن، بروزرسانی و حذف کردن، عملیات CRUD گفته می‌شود که C مخفف Create، حرف R مخفف Read، حرف U مخفف Update و در نهایت حرف D مخفف Delete می باشد.

علاوه بر متدهای فوق، دو متد OPTION و HEAD وجود دارند که از آنها استفاده‌ی چندانی در سطح وب نمی‌شود.

جهت دستیابی به یک دید کلی در جدول زیر مقادیری که هر یک از متدهای HTTP باز می‌گردانند نمایش داده شده است:

متدهای http و CRUD

متد POST

متد POST برای ساختن یک منبع جدید در مجموعه مورد استفاده قرار می‌گیرد. به بیان ساده‌تر ایجاد یک رکورد جدید توسط این متد انجام می‌شود. در مثال زیر از متد پست برای اضافه کردن یک کاربر جدید به مجموعه‌ی استفاده کرده‌ایم. متد پست بدین صورت است که اگر یک درخواست در چندین زمان متفاوت ارسال شود، چندین رکورد متفاوت ساخته خواهد شد.

مثال:

این مثال یک کاربر جدید با نام کاربری masoud‌ و ایمیل masoud@roxo.ir با id = ۱ را ایجاد می‌کند.

متد GET

این متد برای خواندن اطلاعات یک منبع ( نه تغییر آنها) بکار گرفته می‌شود. گاهی این متد برای بازگردانی اطلاعاتی به فرمت XML یا JSON نیز کاربرد دارد. بنابراین هنگامیکه از این متد استفاده می‌شود، داده‌ها کاملا امن هستند و این امر ریسک استفاده از این متد را فقط و فقط برای خواندن اطلاعات بسیار پایین میاورد. همچنین بدیهی‌ست که اگر یک درخواست مشابه در چندین زمان متفاوت به متد GET‌ ارسال شود، پاسخی مشابه دریافت خواهیم کرد.

مثال:

متد PUT

متد PUT برای بروزرسانی (آپدیت) یک رکورد موجود و یا ساخت یک رکورد جدید (در صورت عدم وجود) کاربرد دارد. این متد مقدار جدید رکورد را در هر درخواست جایگزین می‌کند. یعنی به طور مشابه متد PUT ابتدا یک رکورد را پاک می‌کند و سپس یک رکورد جدید را ایجاد و در مکان رکورد قبلی با مقادیر جدید جایگزین می‌کند. بنابراین اگر چندین فیلد در یک درخواست PUT مقداری نداشته باشند، بدیهی‌ست که پس از آپدیت شدن مقدار null را در خود جایگزین می‌کنند. مثلا اگر یک کاربر دارای فیلدهای نام کاربری و ایمیل باشد و سپس متد PUT درخواستی را ارسال کند که تنها شامل فیلد نام کاربری باشد، فقط این فیلد تغییر می‌کند و فیلد ایمیل مقداری برابر null را دریافت خواهد کرد.

مثال زیر را در حالتی ارائه می‌دهیم که تمام فیلد‌ها وجود دارند:

با اعمال مثال بالا، فیلد نام کاربری و ایمیل تغییر می‌کند. و اما مثال بعدی:

با اعمال متد PUT برای مثال فوق تنها ایمیل تغییر می‌کند و مقدار نام کاربری در دیتابیس به صورت null ذخیره می‌گردد. و اگر متد GET را جهت خواندن مثال فوق اعمال کنیم با خروجی زیر مواجه خواهیم شد:

متد PATCH

این متد روشی دیگر برای آپدیت و بروزرسانی رکوردها می‌باشد با این تفاوت که پس از ارسال درخواست، تنها فیلدهایی که دارای مقادیر هستند تغییر می‌کنند و سایر فیلدها به قوت خود باقی می‌مانند. مثلا فرض کنید یک رکورد با نام کاربری و ایمیل در پایگاه داده‌ی خود ذخیره کرده‌اید و حال قصد بروزرسانی آن با متد PATCH را دارید. اگر فیلد نام کاربری را پر کنید و ایمیل را خالی بگذارید و سپس درخواست را ارسال کنید، تنها مقدار فیلد نام کاربری در پایگاه داده تغییر می‌کند و مقدار فیلد ایمیل تغییر نخواهد کرد.

مثال زیر را در حالتی که تمام فیلدها دارای مقدار هستند، ارائه می‌دهیم:

با اعمال متد PATCH در مثال بالا تمام فیلدهای نام کاربری و ایمیل بروزرسانی می‌شوند و اما مثال بعدی:

پس از ارسال درخواست مثال فوق تنها فیلد ایمیل تغییر می‌کند و فیلد نام کاربری مقداری برابر masoud_updated (همان مقدار قبلی) دارد. اگر از متد GET‌ برای نمایش مثال فوق استفاده کنیم با خروجی زیر مواجه خواهیم شد:

متد DELETE

ساده‌ترین متد پروتکل HTTP، متد DELETE می‌باشد که با ارسال این درخواست درکورد موردنظر برای همیشه از پایگاه داده حذف خواهد شد.

0
5 نظر
  1. محمد
    1+

    ممنونم دوست خوبم

  2. ابوالفضل
    1+

    عالی ممنون از سایت خوبتون

  3. عباس
    4+

    خیلی متشکرم
    کلا سایت خوبی دارین و مقالاتتون خیلی بدردم خورده
    خدا امواتتون رو بیامرزه

  4. حسن افشار
    3+

    مرسی بابت مطلب خوبتون

  5. سارا
    3+

    بسیار عالی

ارسال نظر

توجه:‌ آدرس ایمیل شما منتشر نخواهد شد.