سؤال

أقوم بإنشاء خدمة ويب RESTful تحتوي على URIs متعددة لأحد مواردها، نظرًا لوجود أكثر من معرف فريد واحد.هل يجب أن يستجيب الخادم لطلب GET لعنوان URI بديل عن طريق إرجاع المورد، أم هل يجب علي إرسال إعادة توجيه HTTP 3xx إلى عنوان URI الأساسي؟يكون HTTP 303 (انظر أيضًا) إعادة التوجيه الأنسب؟

إيضاح:توضح مواصفات HTTP أن اختيار إعادة التوجيه يعتمد على طلبات URI المستقبلية التي يجب استخدامها.في طلبي، يعد URI "المتعارف عليه" هو الأكثر استقرارًا بين البدائل؛سيتم دائمًا توجيه عنوان URI البديل إلى نفس URI الأساسي، أو يصبح غير صالح.

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

المحلول

أنا شخصياً أؤيد إعادة المورد بدلاً من العبث بإعادة التوجيه، على الرغم من أنني أظن أن ذلك فقط لأن عقلي الباطن يخبرني أن عمليات إعادة التوجيه أبطأ.

ومع ذلك، إذا قررت استخدام إعادة التوجيه، فأعتقد أن 302 أو 307 قد يكون أكثر ملاءمة من 303، على الرغم من أن w3.org يحتوي على تفاصيل حول رموز إعادة التوجيه المختلفة التي يمكنك استخدامها.

نصائح أخرى

تحت W3C بنية شبكة الويب العالمية، المجلد الأول, ، يوجد قسم خاص بالأسماء المستعارة لـ URI (القسم 2.3.1) والتي تنص على ما يلي:

"عندما يصبح الاسم المستعار لـ URI عملة مشتركة، يجب على مالك URI استخدام تقنيات البروتوكول مثل عمليات إعادة التوجيه من جانب الخادم لربط المصدرين.يستفيد المجتمع عندما يدعم مالك URI إعادة توجيه URI المستعار إلى URI "الرسمي" المقابل.لمزيد من المعلومات حول إعادة التوجيه، راجع القسم 10.3، إعادة التوجيه، في RFC2616.أنظر أيضا رقائق لمناقشة بعض أفضل الممارسات لمسؤولي الخادم."

مقابل ما يستحق، أوصي بإعادة التوجيه 302.

كانت إجابة Ubiguchi تحتوي على ما أحتاجه، باستثناء أنني أعتقد الآن أن إعادة التوجيه هي الحل الأمثل، عبر الرابط إلى قسم مواصفات HTTP 1.1 الخاص برموز الاستجابة.اتضح أنني في الواقع بحاجة إلى إعادة توجيه 301 لأن عنوان URI الذي أعيد التوجيه إليه أكثر "صحة" واستقرارًا، وبالتالي يجب استخدامه للطلبات المستقبلية.

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