ما هي رموز حالة HTTP؟

رموز حالة استجابة HTTP تشير إلى ما إذا كان طلب HTTP معين قد اكتمل بنجاح. هناك العديد من رموز الحالة، ولكن القليل منها فقط له معنى في سياق تحسين محركات البحث (SEO).

لنلقي نظرة عليها الآن.

200

رمز حالة النجاح HTTP 200 OK يشير إلى أن الطلب قد نجح.

لكي يتم فهرسة صفحة على Google، يجب أن تعيد رمز الحالة 200. هذا هو ما تبحث عنه عادةً في صفحاتك لكي تحصل على زيارات عضوية. هذا هو الرمز الافتراضي الذي يتم تعيينه عندما يقوم Next.js بعرض صفحة بنجاح.

301/308

رمز حالة إعادة التوجيه HTTP 301 Moved Permanently يشير إلى أن المورد المطلوب قد تم نقله بشكل دائم إلى عنوان URL الهدف.

هذا هو نوع إعادة التوجيه الدائمة. بشكل عام، هذا هو أكثر أنواع إعادة التوجيه استخدامًا.

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

ملاحظة: تستخدم عمليات إعادة التوجيه الدائمة في Next.js إعادة التوجيه الدائمة الرمز 308 افتراضيًا بدلاً من 301 لأنه الإصدار الأحدث ويعتبر الخيار الأفضل.

الفرق الرئيسي بين رمزي الحالة هو أن 301 يسمح بتغيير طريقة الطلب من POST إلى GET، بينما 308 لا يسمح بذلك.

يمكنك تشغيل إعادة توجيه 308 في Next.js عن طريق إرجاع إعادة توجيه بدلاً من الخصائص في دالة getStaticProps().

//  pages/about.js
export async function getStaticProps(context) {
  return {
    redirect: {
      destination: '/',
      permanent: true, // triggers 308
    },
  };
}

يمكنك أيضًا استخدام المفتاح permanent: true في عمليات إعادة التوجيه المعينة في next.config.js.

//next.config.js
 
module.exports = {
  async redirects() {
    return [
      {
        source: '/about',
        destination: '/',
        permanent: true, // triggers 308
      },
    ];
  },
};

302

رمز حالة إعادة التوجيه HTTP 302 Found يشير إلى أن المورد المطلوب قد تم نقله مؤقتًا إلى عنوان URL الهدف.

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

404

رمز خطأ العميل HTTP 404 Not Found يشير إلى أن الخادم لا يمكنه العثور على المورد المطلوب.

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

سيعيد Next.js تلقائيًا رمز حالة 404 لعناوين URL غير الموجودة في تطبيقك.

في بعض الحالات، قد ترغب أيضًا في إرجاع رمز حالة 404 من الصفحة. يمكنك القيام بذلك عن طريق إرجاع ما يلي بدلاً من الخصائص:

export async function getStaticProps(context) {
  return {
    notFound: true, // triggers 404
  };
}

يمكنك إنشاء صفحة 404 مخصصة يتم إنشاؤها بشكل ثابت أثناء البناء عن طريق إنشاء pages/404.js.

مثال:

// pages/404.js
export default function Custom404() {
  return <h1>404 - الصفحة غير موجودة</h1>;
}

410

رمز خطأ العميل HTTP 410 Gone يشير إلى أن الوصول إلى المورد الهدف لم يعد متاحًا على الخادم الأصلي ومن المحتمل أن يكون هذا الوضع دائمًا.

لا يتم استخدام هذا الرمز كثيرًا، ولكن قد ترغب في البحث عن رمز الحالة هذا إذا كنت تحذف محتوى من موقعك لن يكون موجودًا بعد الآن.

أمثلة حيث قد يكون من الحكمة استخدام رمز HTTP 410 Gone تشمل:

  • التجارة الإلكترونية: المنتجات التي تمت إزالتها بشكل دائم من المخزون.
  • المنتدى: المواضيع التي تم حذفها من قبل المستخدم.
  • المدونة: مقالة مدونة تمت إزالتها من الموقع.

يخبر رمز الحالة هذا الروبوتات أنه لا ينبغي لها أبدًا العودة لزحف هذا المحتوى.

500

رمز استجابة خطأ الخادم HTTP 500 Internal Server Error يشير إلى أن الخادم واجه حالة غير متوقعة منعته من تلبية الطلب.

سيعيد Next.js تلقائيًا رمز حالة 500 لخطأ غير متوقع في التطبيق. يمكنك إنشاء صفحة خطأ مخصصة 500 يتم إنشاؤها بشكل ثابت أثناء البناء عن طريق إنشاء pages/500.js.

مثال:

// pages/500.js
export default function Custom500() {
  return <h1>500 - حدث خطأ في جانب الخادم</h1>;
}

503

رمز خطأ الخادم HTTP 503 Service Unavailable يشير إلى أن الخادم ليس جاهزًا لمعالجة الطلب.

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