it-swarm.dev

Redirect () مقابل RedirectPermanent () في ASP.NET MVC

ما الفرق بين Redirect() و RedirectPermanent(). لقد قرأت بعض المقالات ، لكنني لا أفهم متى يجب علينا استخدام Redirect() و RedirectPermanent(). هل تستطيع أن تظهر قطعة من المثال.

64
IFrizy

الفارق الأساسي بين الاثنين هو أن RedirectPermanent يرسل للمتصفح رمز حالة HTTP 301 (تم النقل دائمًا) في حين أن Redirect سيرسل رمز حالة HTTP 302.

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

استخدم Redirect إذا كان المورد متاحًا في نفس الموقع (URL) في المستقبل.

مثال

دعنا نقول أن لديك مستخدمين في نظامك. لديك أيضًا خيار لحذف المستخدمين الحاليين. يحتوي موقع الويب الخاص بك على مورد /user/{userid} يعرض تفاصيل مستخدم معين. إذا تم حذف المستخدم ، فيجب إعادة التوجيه إلى صفحة /user/does-not-exist. في هذه الحالة:

إذا لم تتم استعادة المستخدم - أبدًا مرة أخرى ، فيجب عليك استخدام RedirectPermanent حتى يتمكن المستعرض من الانتقال مباشرةً إلى /user/does-not-exist في الطلبات اللاحقة حتى إذا كان عنوان URL يشير إلى /user/{userid}.

إذا كان قد يتم حذف المستخدم في وقت ما في المستقبل ، فيجب عليك استخدام Redirect عادي.

131
Meryovi

RedirectPermanent هو 301 و Redirect هو 302 رمز الحالة

12
dm03514

يرسلون رموز استجابة مختلفة إلى المتصفح. 301 إعادة توجيه دائمة ، 302 مؤقت. التأثير النهائي هو نفسه ، ولكن إذا أراد العميل فهرسة الروابط (العميل الأكثر شيوعًا الذي يقوم بذلك سيكون محركات البحث) ، فإن إعادة التوجيه الدائمة تخبر العميل بتحديث سجلاته لتجاهل الرابط القديم والبدء في استخدام الرابط الجديد . تخبر عملية إعادة التوجيه المؤقتة العميل أن الصفحة تعيد التوجيه في الوقت الحالي ، ولكن ليس لحذف الرابط القديم من قاعدة بيانات الفهرسة

0
Abhishek Saha