0 تصويتات
منذ في تصنيف البرمجة بواسطة مجهول
ما الفرق بين PUT و PATCH؟

1 إجابة واحدة

0 تصويتات
منذ بواسطة admin6 (1.1مليون نقاط)

الفرق بين PUT و PATCH في بروتوكول HTTP

الفرق الأساسي بين PUT و PATCH هو أن طريقتي الطلب هاتين تُستخدمان لتحديث موارد موجودة على الخادم، لكنهما تختلفان في كيفية تطبيق التحديثات. إذ يعيد PUT المورد بأكمله بعد التعديل، بينما يُستخدم PATCH لتحديث جزئي يعالج فقط الأجزاء المراد تعديلها دون الحاجة لإرسال كل البيانات.

ما هو PUT؟

طريقة PUT تُستخدم لإرسال مورد كامل إلى الخادم بهدف استبداله بالمورد الموجود. يعني ذلك أنك عندما تستخدم PUT لتحديث مورد معين، عليك إرسال كل تفاصيل هذا المورد – ليس فقط البيانات التي تريد تعديلها – لأن الخادم سيستبدل المورد بالكامل بما ترسله. إذا لم يكن المورد الموجود على الخادم موجودًا مسبقًا، في بعض الأحيان يُمكن أن تنشئ هذه الطريقة المورد أول مرة.

على سبيل المثال، إذا كان لديك سجل مستخدم يحتوي على الاسم والعمر والبريد الإلكتروني، وأردت تحديث البريد الإلكتروني فقط باستخدام PUT، فعليك إرسال جميع الحقول الثلاثة في الطلب. إذا أرسلت فقط البريد الإلكتروني في الطلب، قد يفهم الخادم ذلك على أنه حذف الحقول الأخرى.

ما هو PATCH؟

طريقة PATCH تُستخدم لتطبيق تحديثات جزئية على المورد الموجود، بحيث ترسل فقط الحقول أو الأجزاء التي تريد تعديلها أو تحديثها. هذا يجعل PATCH أكثر كفاءة عندما يكون التعديل محدودًا، لأنك لا تحتاج إلى إعادة إرسال كل المعلومات، بل فقط البيانات الجديدة أو المعدلة.

على سبيل المثال، إذا أردت تغيير البريد الإلكتروني فقط لمستخدم، يمكنك إرسال طلب PATCH يحتوي على حقل البريد الإلكتروني الجديد فقط. هذا يوجه الخادم لتحديث هذا الحقل دون أن يمس باقي بيانات المستخدم، مثل الاسم أو العمر.

متى تختار PUT ومتى تختار PATCH؟

اختيار الطريقة المناسبة يعتمد على طبيعة التحديث الذي تريد تنفيذه:

  • استخدم PUT عندما تريد استبدال مورد بالكامل أو عندما تكون متأكدًا من أنك ترسل نسخة كاملة محدثة من المورد.
  • استخدم PATCH عندما تريد تحديث جزء صغير من المورد بدون تعديل بقية الحقول، خصوصًا عندما تكون التحديثات جزئية أو محدودة.

نقاط تقنية أخرى مهمة

من الناحية التقنية، PUT هو عملية تبديل كاملة للمورد (idempotent)* أي أنّ تنفيذ نفس طلب PUT عدة مرات يؤدي إلى نفس النتيجة، بينما PATCH ليس بالضرورة أن يكون idempotent، إذ يمكن لكل طلب PATCH أن يغير المورد بطريقة مختلفة بناءً على محتوى التحديث.

أيضًا، يدعم PATCH بشكل أفضل عمليات التعديل الديناميكية والمعقدة التي يتم فيها تعديل بعض الخصائص فقط، بينما PUT مناسب أكثر في حالات التحديث الشامل أو استبدال كامل المورد.

مرحبًا بك في موقع اسألني، منصة عربية متخصصة في طرح الأسئلة والإجابة عليها. يمكنك بسهولة طرح أي سؤال يدور في ذهنك، وسيقوم مجتمع المستخدمين بمساعدتك من خلال تقديم إجابات مفيدة ومعلومات قيّمة في مختلف المجالات.
...