إعادة توجيه 303 (انظر موردًا آخر)

ما هي إعادة توجيه 303 See Other، ونمط Post/Redirect/Get الذي تفعّله، ولماذا تغيّر الطلب إلى GET أو HEAD بخلاف 307، وكيف تختلف عن 302، ولماذا تنشر Google وBing إرشادات محدودة جدًا لتحسين محركات البحث خاصة بـ303.

نُشر أول مرة: 2 يوليو 2026 · آخر تحديث: 22 أغسطس 2026 · Advanced
اللغات

إعادة توجيه 303 See Other هي إعادة توجيه HTTP مؤقتة تخبر العميل بجلب عنوان URL مختلف باستخدام طلب GET أو HEAD، بغض النظر عن الطريقة التي استخدمها الطلب الأصلي. وهي الآلية وراء نمط Post/Redirect/Get (PRG): إرسال نموذج باستخدام POST، ثم تلقي 303 إلى صفحة نتائج يمكن جلبها عبر GET، بحيث لا تعيد عملية التحديث إرسال POST الأصلي. بخلاف 307 الذي يحافظ دائمًا على الطريقة، تغيّر 303 الطريقة إلى GET أو HEAD؛ وبخلاف 302، فإن سلوكها تجاه الطريقة غير ملتبس. بالنسبة إلى تحسين محركات البحث، أهميتها محدودة جدًا؛ فهي نمط لتطبيقات الويب وليست أداة لترحيل عناوين URL. توثّقها Google فقط ضمن مجموعة 3xx المؤقتة العامة مع 302 و307، وتقول إن إعادة التوجيه نفسها ليست إشارة إلى أن العنوان الهدف يجب أن يصبح أساسيًا، رغم أن إشارات أخرى قد تؤدي إلى فهرسته. ولا تنشر Google أو Bing إرشادات مخصصة لـ303. لن تراها عادةً مستخدمة لإعادة توجيه لأغراض SEO، وإذا ظهرت فستُعامل مثل 302 أو 307.

الخلاصة — 303 (حالة HTTP المسماة “303 See Other”) هي إعادة توجيه مؤقتة، وسلوكها المحدد هو توجيه العميل إلى جلب مورد آخر باستخدام GET أو HEAD، مهما كانت طريقة الطلب الأصلي. وهذا ما يفعّل نمط Post/Redirect/Get (PRG): POST303GET لصفحة النتائج، بحيث يعيد التحديث جلب الصفحة بدل إعادة إرسال النموذج. وهي تختلف عن 307 التي تحافظ دائمًا على الطريقة، وعن 302 التي كان التعامل معها تاريخيًا ملتبسًا. وهي نادرة فعلًا كإعادة توجيه SEO بين الصفحات؛ إنها آلية لتطبيقات الويب وليست أداة لترحيل عناوين URL. توثّق Google 303 فقط كعضو في مجموعة 3xx “المؤقتة” العامة مع 302 و307، أي كإشارة ضعيفة إلى جعل العنوان الهدف أساسيًا، ولا تنشر إرشادات خاصة بـ303؛ ولم أعثر على إرشادات خاصة بها من Bing أيضًا. لا تخترع سلطة غير موجودة: قل بوضوح إن ما يمكن قوله قليل.

ما هي 303 فعليًا؟

303 هي رمز حالة HTTP يعيده الخادم في ترويسات الاستجابة قبل أي جسم، مع ترويسة Location تشير إلى العنوان الذي يجب على العميل جلبه لاحقًا. ومعناها محدد: توجد استجابة طلبك في مكان آخر، وعليك استرجاعها باستخدام GET أو HEAD.

Evidence for this claim RFC 9110 defines 303 See Other as directing the client to retrieve another resource identified by Location using GET or HEAD. Scope: HTTP semantics for 303 responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.4 — 303 See Other

سلوك الاسترجاع عبر GET أو HEAD هو السبب الكامل لوجود 303 كرمز مستقل، وهو المحور الذي تختلف حوله إعادة التوجيهات المؤقتة الثلاث.

303 مقابل 302 مقابل 307: سؤال الطريقة

من منظور SEO، الرموز الثلاثة “مؤقتة”؛ إذ تجمعها Google كإشارات ضعيفة. لكن من الناحية التقنية تجيب عن سؤال واحد بطرق مختلفة: عند اتباع العميل لإعادة التوجيه، ما طريقة HTTP التي سيستخدمها؟

الرمزالمعنىالطريقة في الطلب الذي يتبع إعادة التوجيه
302 Foundمؤقتكانت تاريخيًا ملتبسة؛ إذ حوّل كثير من العملاء POST إلى GET، لكن المواصفة لم تضمن ذلك، فكان السلوك متفاوتًا
303 See Otherانظر موردًا آخر، مؤقتةGET أو HEAD؛ تتغير الطريقة الأصلية عمدًا
307 Temporary Redirectمؤقتةتُحافَظ عليها دائمًا؛ يبقى POST طلب POST وتبقى PUT طلب PUT

أُدخلت 303 و307 جزئيًا لتوضيح الفوضى المحيطة بـ302. إذا أردت فرض GET بعد إرسال نموذج، فهذه وظيفة 303. وإذا احتجت إلى تمرير الطريقة الأصلية، مثل إعادة إرسال POST إلى نقطة نهاية جديدة، فهذه وظيفة 307. أما 302 فهي الوسط التاريخي المرن الذي لا يحسم الأمر.

هناك فرق عملي آخر: لا تكون استجابات 303 قابلة للتخزين المؤقت افتراضيًا، بخلاف 301. يهم ذلك إذا كنت تخشى أن يخزن المتصفح أو شبكة CDN إعادة التوجيه أو الصفحة الهدف بطريقة غير مناسبة؛ مع 303 لا يكون هذا مصدر القلق نفسه.

نمط Post/Redirect/Get بدقة

PRG هو الاستخدام النموذجي لـ303، وهو نمط تصميم مقصود وصحيح، وليس حالة خطأ:

  1. يرسل العميل نموذجًا باستخدام POST لإنشاء طلب أو نشر تعليق أو تنفيذ دفعة.
  2. يعالج الخادم الأثر الجانبي، ثم يعيد 303 See Other مع ترويسة Location تشير إلى عنوان نتيجة يمكن جلبه عبر GET، مثل إيصال أو تأكيد أو عرض مورد محدث.
  3. يتابع العميل ذلك بطلب GET أو HEAD إلى العنوان. يصبح سجل المتصفح وزر التحديث موجّهين إلى استرجاع آمن غير مكرر؛ فإعادة التحميل أو الرجوع يعيدان جلب صفحة النتيجة بدل إعادة تشغيل POST.

الفائدة أن تحديث المتصفح العادي يتوقف عن إعادة إرسال النموذج، فلا تظهر نافذة “تأكيد إعادة إرسال النموذج”. لكن يجب أن نكون دقيقين: يمنع PRG مسار الإعادة المحدد هذا، ولا يضمن معالجة مرة واحدة بالضبط. قد تعيد المحاولات والمهلات والنقرات المزدوجة والطلبات المتزامنة تشغيل POST الأصلي مرتين، لذلك تحتاج كل عملية تغيّر الحالة، مثل الطلبات والمدفوعات ونشر التعليقات، إلى ضوابط على مستوى التطبيق، مثل مفاتيح عدم التكرار وحدود المعاملات واكتشاف الطلبات المكررة، إذا كان التكرار خطرًا حقيقيًا. وفي واجهات REST ستجد 303 أيضًا بعد PUT أو DELETE لإرسال العميل إلى تمثيل المورد المتأثر.

كيف تتعامل Google مع 303، ولماذا لا يوجد الكثير مما يمكن التعامل معه

هذه هي النتيجة المركزية الصريحة: لا تملك Google إرشادات SEO خاصة بـ303. تظهر في وثائق إعادة التوجيه لدى Google كسطر واحد في جدول “المؤقت” بجوار 302 و307. وتوضح Google أن الزاحف يتبع إعادة التوجيه، لكن مسار الفهرسة لا يستخدم إعادة التوجيه نفسها كإشارة إلى أن الهدف يجب أن يكون أساسيًا، رغم أن إشارات أخرى قد تؤدي إلى فهرسته. وهذا أضيق من توحيد الإشارات القوي الذي توفره 301 الدائمة.

Evidence for this claim Google groups HTTP 303 with temporary redirects, follows it, and does not use it as a signal that the destination should become canonical. Scope: Google Search canonicalization behavior for server-side temporary redirects. Confidence: high · Verified: Google: Redirects and Google Search

وتكشف كتابة جون مولر غير الرسمية عن أنواع إعادة التوجيه المزيد. فبعد أن يشرح 301 و302 و307، يمر على 303 في ملاحظة واحدة: ماذا عن 303؟ 304٫5؟ إذا كانت لديك مشاعر قوية تجاه نوع آخر من إعادة التوجيه، فلا تتردد في استخدامه. ثم يضيف الخلاصة العملية: علينا تحديد العنوان الذي ستُفهرس تحته المحتويات، فإذا كان ذلك مهمًا لك فتأكد من دعم القرار بإشارات أساسية أخرى. أي إذا استخدمت 303 واهتممت بالعنوان الذي تتم فهرسته، فلا تعتمد على نوع إعادة التوجيه؛ ادعمها بـrel="canonical" والروابط الداخلية وخرائط المواقع.

تضيف وثائق Google ملاحظة مهمة عبر هذه الرموز كلها: حتى إن كانت تعاملها بالطريقة نفسها، تذكّرك بأنها مختلفة دلاليًا، وعليك استخدام رمز الحالة المناسب لإعادة التوجيه. وتقول العبارة المنسوبة بالنص: “keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect.” (ترجمة) «تذكّر أنها مختلفة دلاليًا. استخدم رمز الحالة المناسب لإعادة التوجيه.» لذا فإن حقيقة أن SEO لا يهتم كثيرًا ليست إذنًا لوضع 303 على انتقال دائم؛ استخدم الرمز الذي يطابق نيتك فعلًا حتى تتصرف العملاء الأخرى بصورة صحيحة.

كيف تتعامل Bing مع 303؟

بوضوح: لم أجد إرشادات عامة خاصة بـBing حول التعامل مع 303 تتجاوز مراجع رموز HTTP العامة في مساعدة Bing Webmaster Tools. لا توجد عبارة موثقة من فابريس كانيل أو من شخص آخر في Microsoft تخص 303 تحديدًا. وهذه معلومة صحيحة عن غياب التوثيق، وليست فجوة ينبغي ملؤها بافتراض أن Bing يطابق سلوك Google. غياب التوثيق ليس دليلًا على تطابق المعالجة؛ وإذا احتجت إجابة نهائية عن Bing تحديدًا، فذلك سؤال مفتوح وليس أمرًا محسومًا.

هل تهم 303 بالنسبة إلى SEO؟ نادرًا.

هذه خلاصة صريحة، وتطابق ما كتبته علنًا: 303 ليست أداة لترحيل صفحة. وفي 11 نوعًا من عمليات إعادة التوجيه وتأثيرها في SEO وصفتها هكذا: إعادة توجيه 303 تنقل المستخدم إلى مورد مشابه للمورد المطلوب، وهي شكل مؤقت من إعادة التوجيه. وتُستخدم عادةً لمنع إعادة إرسال النماذج عندما يضغط المستخدم زر الرجوع في المتصفح. لن ترى عادةً إعادة توجيه 303 مستخدمة لأغراض SEO، لكن إذا ظهرت فستُعامل مثل 302 أو 307.

سأشير إلى توتر صريح في أرشيفي القديم. فقد وصفت معالجة 303 في رموز حالة HTTP وتأثيرها في SEO بأنها غير محددة، وقد تُعامل مثل 301 أو 302 بحسب وظيفتها. أما اليوم فسأصوغها بدقة أكبر: توثيق Google واثق من وضع 303 في المجموعة المؤقتة الضعيفة مع 302 و307. وشعور عدم التحديد عمليًا سببه ندرة 303 في الواقع، حتى لم تحتج Google إلى توضيح الحالات الحدية علنًا، لا وجود سلوك أقوى خفي. ابدأ بالافتراض الموثق، أي ضعيف ومؤقت ومجمع مع 302 و307، واعتبر المفاجأة نتيجة الندرة لا قاعدة سرية.

متى قد تهم؟ فعليًا فقط في المواقع ذات تدفقات النماذج أو الدفع الكثيفة، أو التطبيقات المعتمدة على API حيث تظهر 303 في زحف رموز الحالة. وحتى حينها تكون الإجابة غالبًا: هذا يعمل كما صُمم، فاتركه. إذا كنت تنقل عنوان URL عمدًا، فلا تستخدم 303؛ استخدم 301 للتغيير الدائم أو 302 للمؤقت، واستخدم 308 أو 307 إذا كنت تحتاج إلى الحفاظ على الطريقة تحديدًا.

303 مقابل 201 و202 و204: اختيار الحالة المناسبة لعملية كتابة

ليست 303 الخيار الوحيد بعد طلب يغيّر الحالة، ومن السهل استخدامها بدافع العادة. في API، بدل تدفق نموذج المتصفح، قد تناسبك ثلاثة رموز 2xx أكثر:

  • 201 Created — أنشأ الطلب موردًا واحدًا أو أكثر بصورة متزامنة، وينبغي أن تحدد الاستجابة المورد الأساسي في Location إن وُجدت، وإلا ففي URI الهدف نفسه. استخدمها عندما يكتمل الإنشاء وتريد أن يحصل العميل على المورد الجديد مباشرة، لا على جولة GET منفصلة.
  • 202 Accepted — قُبل الطلب لكن المعالجة لم تكتمل بعد، مثل عمل موضوع في قائمة انتظار أو مهمة غير متزامنة. تكون الاستجابة غير حاسمة عمدًا؛ صف الحالة الحالية، ويفضل أن تشير إلى مراقب حالة يمكن للعميل الاستعلام عنه.
  • 204 No Content — نجحت العملية ولا يوجد شيء آخر لإرساله: لا جسم ولا حاجة إلى إعادة توجيه. تنتهي الاستجابة عند قسم الترويسات.

تأخذ 303 شكلًا مختلفًا عن هذه الرموز الثلاثة: فهي عندما ينبغي للعميل استرجاع مورد نتيجة محدد بصورة منفصلة بعد عملية الكتابة، وغالبًا في نمط PRG داخل المتصفح. وليست بديلًا مباشرًا عن الإنشاء المتزامن 201، أو القبول غير المتزامن 202، أو النجاح العادي بلا محتوى 204؛ فكل رمز يعبّر عن نتيجة مختلفة لا تعبّر عنها إعادة التوجيه.

الخرافات الشائعة

  • “303 تعني أن الصفحة انتقلت أو تعطلت.” لا. إنها استجابة مقصودة تغيّر الطريقة، عادةً بعد POST أو PUT أو DELETE، وليست إشارة إلى نقل المحتوى أو إلى خطأ.
  • “تمرر 303 قيمة SEO مثل 301.” لا تفعل؛ إنها مؤقتة وضعيفة، وفي مجموعة 302 و307 وفق وثائق Google.
  • “ينبغي لمتخصصي SEO استخدام 303 كإعادة توجيه عامة.” لم تُصمم لذلك؛ إنها نمط ضيق للنماذج وواجهات API، واستخدامها في ترحيل عناوين URL العادي غير معتاد.
  • “لدى Google قواعد تفصيلية خاصة بـ303.” لا؛ هناك ذكر واحد ضمن مجموعة، وإشارة مولر التي تقول استخدمها إن شئت. هذه هي السجلات كلها.
  • “303 و302 متطابقتان تقنيًا.” هما متقاربتان في معاملة البحث، لكنهما ليستا متطابقتين تقنيًا: تغيّر 303 الطلب اللاحق إلى GET أو HEAD، بينما كان سلوك 302 تاريخيًا غير متسق، ولهذا أُدخلت 303 و307 لتوضيحه.

أين تقع هذه الحالة؟

303 رمز في منطقة إعادة التوجيه المؤقتة. أقرب أقاربها 302، وهي إعادة التوجيه المؤقتة المرنة التي تُجمع معها عادةً، و307، وهي عكسها في الحفاظ على الطريقة؛ إذ تحافظ 307 على الطريقة بينما تغيّر 303 الطريقة إلى GET أو HEAD. وتختلف عن 301، وهي إعادة التوجيه الدائمة التي توحد إشارات الترتيب فعلًا وتنجز عمل ترحيل العنوان الذي لم تُبنَ 303 له. وللعائلة الكاملة، أي 301 و308 الدائمتان، و302 و303 و307 المؤقتة، و404 و410 للمفقود، وأخطاء 5xx، راجع مجموعة حالات HTTP التي تنتمي إليها هذه الصفحة.

التحقق من تدفق 303 بأمان

قبل الوثوق بـ303 في الواقع، تحقق منها دون اتباع تلقائي أعمى: افحص قيمة Location نفسها، وهل هي مطلقة أو نسبية وقابلة للحل، وراقب حلقات إعادة التوجيه أو السلاسل غير الضرورية، وتأكد من أن الطلب اللاحق الفعلي يستخدم GET أو HEAD، ثم افحص حالة الاستجابة النهائية ومحتواها. وفي تدفق نموذج أو API، افحص سجلات التطبيق أيضًا لتتأكد من أن عملية الكتابة الأصلية لم تُعد.

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

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.