هل هناك أي سبب لعدم استخدام HTTP وضعه وحذفه في تطبيق ويب؟

StackOverflow https://stackoverflow.com/questions/1101888

  •  12-09-2019
  •  | 
  •  

سؤال

بالنظر حولها، لا يمكنني تسمية تطبيق ويب واحد (وليس خدمة الويب) التي تستخدم أي شيء إلى جانب الحصول على طلبات النشر. هل هناك سبب محدد لذلك؟ هل بعض المتصفحات (أو الخوادم) لا تدعم أي أنواع أخرى من الطلبات؟ أم أن هذا فقط لأسباب تاريخية؟ أرغب في استخدام الطلبات المحددة وحذفها لجعل حياتي أسهل قليلا على جانب الخادم، لكنني متردد في أي شخص آخر.

هل كانت مفيدة؟

المحلول

في الواقع كمية عادلة من الأشخاص الذين يستخدمون وضع وحذف، ومعظمهم من أجل واجهات برمجة التطبيقات غير المتصفح. بعض الأمثلة هي بروتوكول نشر Atom و APIs بيانات Google:

أبعد من ذلك، لا ترى وضع / حذف في الاستخدام المشترك لأن معظم المتصفحات لا تدعم وضعها وحذفها من خلال النماذج. يبدو أن HTML5 لتحديد هذا:

الطريقة التي يعمل بها لتطبيقات المتصفح هي: تصميم التطبيقات المريحة مع وضع وحذف في الاعتبار، ثم "النفق" تلك الطلبات من خلال المشاركات من المتصفح. على سبيل المثال، انظر هذا سؤال حتى كيفية تحقيق روبي على القضبان هذا باستخدام الحقول المخفية:

لذلك، لن تكون على تصميم طلبك الخاص بك مع مجموعة أكبر من أفعال HTTP في الاعتبار.

تحرير: بالمناسبة، إذا كنت فضوليا حول السبب، فإن وضع / حذف مفقود من مشاركات النموذج المستندة إلى المتصفح، اتضح أنه لا يوجد سبب تقني جيد حقيقي. تقرأ حول هذا الموضوع على القائمة البريدية للباقي، وخاصة تعليقات Roy Fayering، مثيرة للاهتمام لبعض السياق:

تحرير: هناك بعض التعليقات على ما إذا كانت مكتبات Ajax تدعم جميع الأساليب. انها تنخفض إلى المتصفح الفعلي لتنفيذ XMLHTPRECEST. اعتقدت أن شخصا ما قد يجد هذا الرابط مفيد، والذي يختبر متصفحك لمعرفة مدى توافق كائن HTTPRequest المتوافق مع خيارات HTTP المختلفة.

لسوء الحظ، لا أعرف المرجع الذي يجمع هذه النتائج.

نصائح أخرى

تماما ببساطة، HTML 4.01. form جزء فقط يسمح للقيم "POST" و "GET"في الأمر method ينسب

قد تسقطها بعض خوادم الوكيل مع سياسات أمنية صعبة. أنا أستخدم وضع وحذف على أي حال.

لقد قرأت أن بعض المتصفحات لا تدعم أساليب HTTP الأخرى بشكل صحيح، على الرغم من أنني لا أستطيع تسمية أي تفاصيل.

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

أقول استخدام جميع ميزات HTTP، المتصفحات ملعون، لول. ربما سوف تلهم الاستخدام الكامل والسليم لبروتوكول HTTP المضي قدما. هناك المزيد من الحدوث على الشبكة من المشاركات فقط ويحصل. حول تطبيقات متصفح الوقت تعكس هذا.

هذا يعتمد على مكتبة المتصفح الخاص بك و AJAX. علي سبيل المثال jQuery. يدعم جميع طرق HTTP على الرغم من أن المتصفح قد لا. انظر على سبيل المثال مسج "Ajax" وثائق على سمة "النوع".

ال الرؤية يتيح لك Java Framewory وضع النفق وحذف الطلبات من خلال عمليات نشر HTML. للقيام بذلك، يمكنك فقط إضافة طريقة = ضع أو طريقة = حذف سلسلة استعلام URI الخاصة بك، على سبيل المثال:

http://www.example.com/user=xyz?method=delete ...

هذا هو نفسه RUBY على نهج القضبان (كما هو موضح بواسطة @ الأجزاء أعلاه).

شخصيا، أنا حقا لا أرى أي غرض لاستخدام وضع أو حذف في تطبيق ويب. جميع العمليات التي يقوم بها التطبيق يؤدي القراءة أو الكتابة، وإخراج الإدخال المعروف أيضا باسم الإدخال. لماذا تحتاج إلى التمييز بين طبيعة العملية في رأس طلب HTTP؟ يمكنني إجراء مكالمات AJAX مع نفس عنوان URL للنموذج / الكائن / Object_ID أو القيام بعمليات متعددة مثل حذف أو تحديث أو الحصول على القيمة أو إنشاء. فقط من خلال النظر إلى عنوان URL، ليس لدي أدنى فكرة واحدة منها. باستخدام الحصول على ونشر فقط، ستكون عناوين URL الخاصة بي:

/ كائن / معرف / حذف

/ كائن / معرف / إنشاء

/ كائن / معرف / تحديث

/ كائن / ID -> الحصول على ضمنيا

إلخ.

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

ارجع إلى "ويب مريح ويب" بواسطة Leonard Richardson لقراءة المزيد عن حالات الاستخدام المختلفة والاتفاقيات المتعلقة بطرق طلب HTTP في API مريح ويب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top