در HTTP، دو متد PUT و PATCH برای به‌روزرسانی منابع در سرور استفاده می‌شوند، اما تفاوت‌های مهمی بین این دو وجود دارد. در ادامه توضیح می‌دهم:

PUT (Update کامل یا جایگزینی)

PUT زمانی استفاده می‌شود که بخواهید یک منبع را به‌طور کامل به‌روزرسانی یا جایگزین کنید. به این معنی که وقتی یک درخواست PUT ارسال می‌کنید، داده‌های جدید جایگزین داده‌های موجود در سرور می‌شوند. اگر برخی از بخش‌های منبع ارسال نشوند، حذف می‌شوند.

مثال:
فرض کنید یک کاربر داریم با این داده‌ها:

{
  "name": "Milad",
  "age": 30,
  "city": "Mashhad"
}

اگر درخواست PUT به این صورت ارسال شود:

{
  "name": "Milad Abbasi",
  "age": 31
}

در این حالت، منبع در سرور به‌طور کامل با داده‌های جدید جایگزین می‌شود و خروجی به این شکل خواهد بود:

{
  "name": "Milad Abbasi",
  "age": 31
}

توجه کنید که فیلد city به‌طور کامل حذف می‌شود.

PATCH (به‌روزرسانی جزئی)

PATCH برای به‌روزرسانی جزئی منابع استفاده می‌شود. این متد فقط بخش‌هایی از منبع را که نیاز به تغییر دارند، به‌روزرسانی می‌کند و سایر بخش‌ها دست‌نخورده باقی می‌مانند.

مثال:
داده اولیه کاربر:

{
  "name": "Milad",
  "age": 30,
  "city": "Mashhad"
}

اگر درخواست PATCH به این شکل ارسال شود:

{
  "age": 31
}

در این حالت فقط فیلد age به‌روزرسانی می‌شود و سایر فیلدها مانند name و city بدون تغییر باقی می‌مانند:

{
  "name": "Milad",
  "age": 31,
  "city": "Mashhad"
}

تفاوت‌های کلیدی:

PUT برای جایگزینی کامل یک منبع استفاده می‌شود. اگر برخی فیلدها ارسال نشوند، حذف خواهند شد.

PATCH برای به‌روزرسانی جزئی و تغییرات خاص در یک منبع استفاده می‌شود و فیلدهایی که ارسال نشوند، بدون تغییر باقی می‌مانند.