302 مقابل 307: إعادة التوجيه المؤقتة وحفظ الطريقة

الفرق بين إعادة التوجيه 302 و307: كلتاهما مؤقتة ومتكافئة في SEO، لكن 307 تضمن حفظ طريقة الطلب والجسم. يشرح هذا المقال متى تستخدم كل رمز، و«307 الشبح» في HSTS، ومخاطر إعادة الإرسال وإعدادات الأطر.

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

إعادة التوجيه 302 و307 مؤقتتان؛ وتعالجهما Google بالطريقة نفسها، إذ تسمي وثائقها 307 "equivalent to 302" _(ترجمة)_ «مكافئة لـ302»، وقال Mueller "for SEO, it doesn't really matter" _(ترجمة)_ «بالنسبة إلى SEO، لا يهم الأمر حقًا» بين الزوجين المؤقت والدائم؛ ولا تمنح أيًّا منهما الوجهة إشارة canonical افتراضية. الفرق التقني الحقيقي هو حفظ الطريقة والجسم: تضمن 307 بقاء POST هو POST عند الاتباع التلقائي، بينما قد تسمح 302 لعميل بتحويل POST إلى GET. استخدم 302 للـGET العادي والاختبارات والتوجيه الجغرافي وصفحات الصيانة، و307 للنماذج وAPIs وwebhooks وتدفقات الدفع أو المصادقة عندما يجب أن تصل الطريقة والبيانات كما أُرسلت. انتبه إلى إعادة الإرسال غير القابلة للتكرار، وإلى "phantom 307" _(ترجمة)_ «307 الشبح» في HSTS، وإلى أن إعدادات الأطر مرتبطة بالإصدار. لا تستبدل كل 302 بـ307 من أجل SEO؛ اختر الرمز بحسب دلالات الطلب، وراجع رؤوس التخزين ودعم العملاء وضوابط القابلية للتكرار. وترتيبي المفضل هو 307 / 302 / 303 قبل meta/HTTP refresh.

الخلاصة — 302 و307 كلتاهما إعادة توجيه مؤقتة، وتعالجهما Google بالطريقة نفسها — إذ تقول وثائقها إن 307 «مكافئة لـ302»، وقال Mueller «بالنسبة إلى SEO لا يهم الأمر حقًا» بين الزوجين المؤقت والدائم؛ ولا رمز منهما إشارة إلى أن الوجهة ينبغي أن تصبح canonical، ولم تنشر Google فرقًا معلنًا في PageRank أو قيمة الروابط بينهما. الفرق الحقيقي هو الحفاظ على الطريقة: يجب أن يحافظ اتباع 307 التلقائي على طريقة الطلب نفسها (فيبقى POST هو POST)، بينما تسمح 302 للعميل بتحويل POST إلى GET — أما بايتات الجسم الدقيقة وبيانات الاعتماد والسلوك عبر أصل مختلف فتظل رهينة بالعميل، فتحقق ولا تفترض. الجأ إلى 307 عندما يسبب فقدان الطريقة كسرًا — في APIs والنماذج وتدفقات POST وwebhook والدفع والمصادقة — لكن انتبه إلى إعادة الإرسال غير القابلة للتكرار (فقد يعيد طلب دفع أو طلب شراء توجيهه). 302 عادية مناسبة لإعادة توجيه GET المعتادة، ومنها توصية Google الصريحة باختبارات A/B. وانتبه إلى «307 الشبح» في HSTS (اسم في واجهة Chrome لا ضمان بروتوكولي)، وإلى تفاصيل الأطر (توثق Next.js 303 لـServer Actions و307 في مواضع أخرى — راجع إصدارك بدل التعميم على منصات أخرى)، وإلى أن Bing لا تملك إرشادًا مميزًا لـ302 مقابل 307. وترتيبي المفضل لإعادة التوجيه المؤقتة هو 307 / 302 / 303 قبل meta/HTTP refresh — لكن جعل 307 افتراضية ليس بلا تكلفة، فتحقق من رؤوس التخزين المؤقت ودعم العملاء القدامى وضوابط القابلية للتكرار أولًا. “equivalent to 302(ترجمة) «مكافئة لـ302.» “for SEO, it doesn’t really matter” (ترجمة) «لا يهم الفرق حقًا من منظور SEO».

كلتاهما مؤقتة — هذه هي نقطة البداية

قبل أي شيء: تقع 302 و307 في الفئة نفسها. تجمع Google 302 (Found) و303 (See Other) و307 (Temporary Redirect) تحت «إعادة توجيه مؤقتة»، وسلوكها جميعًا واحد — “Googlebot follows the redirect, but the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical.” (ترجمة) «يتبع Googlebot إعادة التوجيه، لكن مسار الفهرسة لا يستخدمها إشارة إلى أن هدف إعادة التوجيه ينبغي أن يكون canonical». وبعبارة بسيطة، تبقي إعادة التوجيه المؤقتة عنوان المصدر هو canonical افتراضيًا؛ ولا تمنح الوجهة إشارات المصدر كما تفعل إعادة التوجيه الدائمة (301/308).

Evidence for this claim Google Search does not use a 302, 303, or 307 temporary redirect itself as a signal that the target should be canonical, although other signals can still lead to target indexing or selection. Scope: temporary redirects Confidence: high · Verified: Redirects and Google Search

هذه بالضبط مقارنة طبقة الدائم ولكن منزلة واحدة: 301/308 هما الزوج الدائم، و302/307 الزوج المؤقت، ومنطق «الأعلى رقمًا يحافظ على الطريقة» متطابق في الزوجين.

الفرق الحقيقي الوحيد: الحفاظ على الطريقة والجسم

إليك الفرق الذي يهم فعلًا في جملة واحدة: عندما يتبع العميل 307 تلقائيًا، تشترط مواصفة HTTP الحالية (RFC 9110) إبقاء طريقة الطلب نفسها؛ أما 302 فتترك للعميل حرية تحويل POST إلى GET. هذا ضمان على مستوى المواصفة للطريقة — وليس ضمانًا شاملًا لكل بايت من الجسم أو لبيانات الاعتماد أو للتعامل عبر أصل مختلف، فذلك يعتمد على العميل المحدد الذي ينفذ إعادة التوجيه. تحقق من هذه الأمور بطلب حقيقي بدل افتراض أن 307 تعيد كل شيء مطابقًا في كل حالة.

سبب وجود هذا الالتباس قصة في تاريخ المواصفة تستحق الرواية، لأن معظم الشروحات تذكر الحقيقة بلا سببها. ففي عصر HTTP/1.0 كان نص مواصفة 302 يقول تقنيًا إن العملاء لا ينبغي أن يغيروا طريقة الطلب عند اتباع إعادة التوجيه — لكن المتصفحات الأولى (Netscape ثم الجميع) تجاهلت ذلك وحولت الطرق غير GET بصمت، ولا سيما POST، إلى GET مع 302. وأصبح هذا السلوك غير المتسق لكنه الشامل معيارًا فعليًا. ثم صاغ HTTP/1.1 (RFC 2616، الذي أُدرج لاحقًا في RFC 7231 وRFC 9110 الحالية) الانقسام إلى رمزين صريحين لإنهاء الالتباس:

  • 303 (See Other) — يجلب هدف إعادة التوجيه بـGET أو HEAD (وليس «GET دائمًا» ببساطة؛ فـRFC 9110 تسمح بأي من الطريقتين الآمنتين)، وهو السلوك المقصود لنمط «POST ثم أعد التوجيه إلى صفحة نتيجة يمكن إعادة تحميلها بأمان».
  • 307 (Temporary Redirect) — تُحفظ الطريقة بصرامة عند الاتباع التلقائي، وفق المواصفة؛ ولا تجبر RFC 9110 كل عميل على اتباع إعادة التوجيه أصلًا.

تضع MDN الخلاصة العملية بوضوح: “The difference between 307 and 302 is that 307 guarantees that the client will not change the request method and body when the redirected request is made. With 302, older clients incorrectly changed the method to GET.” (ترجمة) «الفرق بين 307 و302 أن 307 تضمن ألا يغير العميل طريقة الطلب والجسم عند إرسال الطلب المعاد توجيهه. أما مع 302 فقد غيّر العملاء القدامى الطريقة خطأً إلى GET». لم تضف 307 قدرة جديدة بقدر ما أزالت غموضًا — فهي النسخة المضمونة بالمواصفة لما كان يفترض أن تفعله 302 المنفذة جيدًا. والمتصفحات الحديثة أكثر اتساقًا بكثير من فوضى عصر Netscape، لكن 307 تزيل الالتباس بالمواصفة لا بالعرف.

جنبًا إلى جنب:

نوع الطلب302307
إعادة توجيه صفحة GET عاديةمناسبة — تُعاد كـGETمناسبة — تُعاد كـGET
POST + بيانات نموذجتسمح المواصفة للعميل بتغييرها إلى GET (RFC 9110 §15.4.3) — والسلوك يختلف باختلاف العميلتُحفظ الطريقة عند الاتباع التلقائي — ويأتي الجسم معها عادةً، لكن تحقق من البايتات وبيانات الاعتماد الدقيقة مع عميلك
API / غير GET (PUT، DELETE، webhook)تتناول المواصفة POST تحديدًا — فلا تفترض أن كل طريقة غير GET تتحول بالطريقة نفسهاتُحفظ الطريقة بالمواصفة؛ أكد سلوك الجسم وبيانات الاعتماد وعبر الأصل المختلف للعميل الذي يجري الاستدعاء فعليًا

ملاحظتان دقيقتان ينبغي إبقاؤهما واضحتين: سماح RFC بالتحويل مع 302 يذكر POST، لا كل طريقة — فلا تعممه إلى «302 تكسر دائمًا PUT/DELETE» من دون فحص عميلك. ولا رمز منهما قابل للتخزين افتراضيًا لمجرد حالته: لا تدرج RFC 9111 302 أو 307 ضمن رموز الحالة القابلة للتخزين الحدسي من الحالة وحدها؛ فالتخزين يعتمد على رؤوس Cache-Control/Expires الصريحة، لا على رمز إعادة التوجيه الذي اخترته.

Evidence for this claim Do not generalize the RFC's 302 POST-to-GET allowance into a claim that PUT, DELETE, or every non-GET method will change; client-specific evidence is required. Scope: 302, 303, and 307 responses Confidence: high · Verified: RFC 9110: HTTP Semantics

“302 always breaks PUT/DELETE(ترجمة) «302 تكسر دائمًا PUT/DELETE».

تتسق تعريفات Ahrefs لدي مع جزء الحفاظ على الطريقة: “A 307 redirect is the same as a 302 redirect, except it retains the HTTP method (POST, GET) of the original request when performing the redirect.” (ترجمة) «إعادة توجيه 307 هي إعادة توجيه 302 نفسها، إلا أنها تحتفظ بطريقة HTTP (POST أو GET) للطلب الأصلي عند تنفيذ إعادة التوجيه».

Evidence for this claim RFC 9110 defines both 302 and 307 as temporary redirects; 307 forbids changing the request method, while 302 permits POST-to-GET rewriting for historical reasons. Scope: HTTP semantics for 302 and 307 responses. Confidence: high · Verified: IETF: RFC 9110 §§15.4.3, 15.4.8

هل تعامل Google 302 و307 بشكل مختلف في SEO؟

لا — وGoogle صريحة على نحو غير معتاد في ذلك. هذا موضوع محسوم قليل الجدل، شأنه شأن 301 مقابل 308.

في وثائق رموز حالة HTTP لدى Google، يقول صف 302 إن زواحف Google تتبع إعادة التوجيه وتستخدمها إشارة ضعيفة إلى ضرورة معالجة الهدف، ويقول صف 307 حرفيًا: “Equivalent to 302.” (ترجمة) «مكافئة لـ302». وتذكر Google أن الرمزين مختلفان دلاليًا، وتوصي باختيار رمز الحالة المناسب حتى تستفيد منه العملاء الآخرون، مثل قارئات الكتب الإلكترونية ومحركات البحث الأخرى.

هذه إجابة معالجة الزحف. تتعامل Google معهما بالطريقة نفسها في كيفية جلب Googlebot لإعادة التوجيه واتباعها، ولا تطلب إلا اختيار الرمز الصحيح دلاليًا كي تعمل العملاء غير التابعة لـGoogle جيدًا. Evidence for this claim Google treats 307 as equivalent to 302 for Search while noting that the two status codes are semantically different. Scope: Google Search redirect handling; HTTP clients still need the appropriate status code. Confidence: high · Verified: Google: HTTP status codes and Search

هناك تفصيل يستحق الدقة، لأنه فجوة حقيقية في كثير من الشروحات الأخرى: تكافؤ معالجة الزحف ادعاء منفصل عن نتيجة الفهرسة. تجمع وثيقة إعادة التوجيه وGoogle Search لدى Google رموز 302 و303 و307 تحت «إعادة توجيه مؤقتة»، وتقول إن “the indexing pipeline doesn’t use the redirect as a signal that the redirect target should be canonical.” (ترجمة) «مسار الفهرسة لا يستخدم إعادة التوجيه إشارة إلى أن هدفها ينبغي أن يكون canonical». هذا ضمان مفيد وحقيقي — لكنه لا يعد بأن يبقى عنوان المصدر متصدرًا، أو بأن الوجهة لن تُفهرس أبدًا عبر إشارات أخرى. تعامل مع «302 و307 تعالجان بالطريقة نفسها» و«لا واحدة منهما إشارة canonical إلى الهدف» على أنهما عبارتان منفصلتان وكلتاهما صحيحة، لا ادعاء بأن الرمزين يمرران PageRank أو قيمة روابط متطابقة، فهذا ليس ما تقوله وثائق Google في أي من الاتجاهين.

“While Google treats these status codes the same way, keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect so other clients (for example, e-readers, other search engines) may benefit from it.” (ترجمة) «توضح Google أن الرمزين متكافئان في المعالجة، لكنهما مختلفان دلاليًا؛ لذا ينبغي اختيار الرمز الملائم ليستفيد منه العملاء الآخرون.»

لاحظ إطار الكلام: السبب كله لاختيار 307 بدل 302 سؤال وظائف («هل تعمل مع APIs؟»)، لا سؤال ترتيب. ولا يوجد مصدر أولي موثوق يدعي أفضلية SEO لأي منهما.

هل تعامل Bing 302 و307 بشكل مختلف؟

بصراحة: لم تقل Bing ذلك. إرشاداتها العامة لإعادة التوجيه (منشور 2011 «إدارة عمليات إعادة التوجيه – 301 و302 وcanonical» ومنشور 2020 «ترحيل موقع الويب مع Bing») تناقش فقط انقسام 301 الدائم مقابل 302 المؤقت، ولا تذكر 307 أو 308 بالاسم. وبخلاف موضوع 301 مقابل 308 — حيث أصدر Fabrice Canel تصريحًا مباشرًا — لم أعثر على تصريح لممثل Bing يخص 302 مقابل 307.

لذلك سأقولها بوضوح بدل افتراض التكافؤ: لا يوجد تصريح من Bing يميز تحديدًا بين 302 و307. لكن هناك سلوك موثق يستحق معرفته في نقاش إعادة التوجيه المؤقتة عمومًا — فإذا رأى Bingbot 302 نفسها مرات متتالية كافية، يبدأ معاملتها مثل 301 ويدمج الإشارات إلى الأمام — إلا أن Bing لم تؤكد علنًا أن هذا السلوك يمتد إلى 307 المتكررة. تعامل مع ذلك كفجوة توثيق حقيقية، لا حقيقة عن 307.

متى تكون 307 هي الاختيار الصحيح تقنيًا

أي إعادة توجيه يؤدي فيها فقدان الطريقة الأصلية أو الجسم إلى كسر شيء ما:

  • APIs ونقاط webhook — طلب POST/PUT/DELETE يجب أن يصل إلى العنوان الجديد بالطريقة والحمولة السليمتين.
  • إرسال النماذج (تدفقات POST) — كما قال Mueller: “if you have a— I’d almost say like a broken setup, that you have a form on one domain and the results are forwarded to a different one, then you would use the 307, 308.” (ترجمة) «إذا كان لديك — وأكاد أقول إعدادًا مكسورًا — نموذج في نطاق والنتائج تُمرر إلى نطاق آخر، فاستخدم 307 أو 308».
  • تسليمات الدفع والشراء وتسجيل الدخول/المصادقة عبر POST — أي مكان يؤدي فيه إسقاط الجسم بصمت إلى فشل المعاملة.

ملاحظة أمان جديرة بالتنبيه: ضمان 307 للحفاظ على الطريقة يعمل في الاتجاهين. فإذا لم يكن الطلب الأصلي قابلًا للتكرار — عملية دفع أو إرسال طلب شراء أو أي أثر جانبي — فإن اتباع 307 تلقائيًا يعيد الطلب نفسه إلى العنوان الجديد. وهذا غالبًا ما تريده، لكنه يعني أيضًا أن إعادة المحاولة من العميل أو سلسلة إعادة التوجيه قد تعيد إرسال استدعاء غير قابل للتكرار أكثر من مرة. ضع ضوابط القابلية للتكرار (مفتاح idempotency أو فحص الإرسال المكرر) على نقطة الاستقبال، ولا تفترض أن إعادة التوجيه وحدها تجعل الإعادة آمنة.

سبب كبير لمواجهة المطورين 307 من دون اختيارها: بعض الأطر ومنصات edge تضبط رمزًا يحافظ على الطريقة افتراضيًا للطلبات غير GET. وأوضح مثال موثق هو Next.js — إذ تعيد دالة redirect() رمز 303 عند استدعائها من Server Action و307 في السياقات المدعومة الأخرى، وفق مرجع API الحالي؛ لذلك راجع وثائق إصدار Next.js لديك بدل افتراض أن رمزًا واحدًا ينطبق على كل إطار. تختلف الأطر وCDN وموازنات الحمل الأخرى حسب المنتج والإصدار — تحقق من رمز الحالة الفعلي الذي تعيده منصتك بدل افتراض تشابهه مع منصة أخرى. ورؤية 307 أو 303 غير متوقعة غالبًا ما تكون المنصة تطبق سلوكًا واعيًا بالطريقة لا سوء إعداد — لكن أكد ذلك في إعدادك وإصدارك تحديدًا.

متى تكون 302 هي الافتراضية العملية

إعادة التوجيه المؤقتة المعتادة لطلبات GET العادية — فلا توجد طريقة ينبغي حفظها، ومن ثم لا يمنحك ضمان 307 شيئًا:

  • إعادة التوجيه الجغرافي/اللغوي (مع التحفظ المعتاد من حجب المحتوى كليًا بحسب المنطقة).
  • اختبارات A/B والتقسيم — تقول إرشادات اختبار المواقع لدى Google صراحةً استخدم 302 لا 301 لنسخ الاختبار المعاد توجيهها، تحديدًا لأن إعادة التوجيه مؤقتة.
  • إعادة توجيه وضع الصيانة/«سنعود قريبًا» — لكن فقط عندما توجد وجهة حقيقية ترسل إليها الزوار؛ فإذا كان الموقع كله غير متاح، تشير إرشادات Google نفسها إلى 503 (الخدمة غير متاحة) بدل أي إعادة توجيه. وإذا كان ما تعيد توجيهه طلبًا غير GET — كاستدعاء دفع أو API يصل إلى صفحة الصيانة — فستعيد 307 تشغيل الطلب في العنوان الجديد، وهذا ليس آمنًا تلقائيًا إن كان للاستدعاء أثر جانبي، فلا تستخدم 307 عادةً قبل الفحص.
  • إعادة توجيه الهاتف↔سطح المكتب (m-dot) — مثال Mueller نفسه على المكان الذي تكون فيه 302 هي الرمز الصحيح تحديدًا: “a 302 redirect would be the right one because next time someone goes there, you don’t really know if they want to go to the mobile version or the desktop version.” (ترجمة) «إعادة توجيه 302 ستكون الصحيحة، لأنك في المرة التالية لا تعرف حقًا هل يريد الزائر نسخة الهاتف أم سطح المكتب». فالوجهة الصحيحة تعتمد على الزائر، وليست حركة دائمة.

«307 الشبح» في HSTS — 307 لم يرسلها خادمك

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

إذا أرسل موقع رأس HSTS (Strict-Transport-Security) عبر HTTPS، يتذكره المتصفح، وفي أي محاولة لاحقة للوصول إلى نسخة http:// يرقّي الطلب إلى https:// بنفسه — فتُعاد كتابة URI قبل أن يلامس الطلب الشبكة. تعرض إصدارات Chrome الحالية هذه الترقية الداخلية في DevTools على أنها 307، لكن لا شيء على الخادم أصدرها، كما أن الاسم الدقيق أو عدد البايتات أو عرض الرأس سلوك واجهة خاص بإصدار Chrome، لا متطلبًا في مواصفة HTTP أو HSTS — فلا تتعامل مع «307» كاسم مضمون في كل متصفح أو كل إصدار مستقبلي. وقد شرح John Mueller ذلك في موقعه الشخصي: “After seeing the HTTPS URL with the HSTS header (for example, with any redirect from the HTTP version), Chrome will act like it’s seeing a 307 redirect the next time you try to access the HTTP page.” (ترجمة) «بعد رؤية عنوان HTTPS مع رأس HSTS (مثل أي إعادة توجيه من نسخة HTTP)، سيتصرف Chrome كأنه يرى إعادة توجيه 307 في المرة التالية التي تحاول فيها الوصول إلى صفحة HTTP». والتوضيح الأهم: “Your server’s not returning a 307, Chrome is just showing it to you as such to explain that it’s doing the redirect for you.” (ترجمة) «خادمك لا يعيد 307؛ إنما يعرضها Chrome لك بهذه الصورة ليشرح أنه ينفذ إعادة التوجيه نيابةً عنك».

أشرت إلى الأمر نفسه في كتاباتي عن رموز الحالة — فهناك حتى معنى مستقل هو «307 HSTS Policy» («يفرض على العميل استخدام HTTPS») منفصل عن «307 Temporary Redirect». أما دقة SEO فهي: “When web servers require clients to only use HTTPS connections (HSTS policy), Google won’t see the 307 because it’s cached in the browser.” (ترجمة) «عندما تفرض خوادم الويب على العملاء اتصالات HTTPS فقط (سياسة HSTS)، لن ترى Google 307 لأنها مخزنة في المتصفح». فإذا رصدت 307 في تبويب Network ولم تضبطها، وقبل البحث عن قاعدة إعادة توجيه خاطئة، تحقق مما إذا كانت HSTS هي التي تجري ترقية HTTP إلى HTTPS.

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

  • «307 لا تمرر قيمة SEO نفسها التي تمررها 302». لا سند لذلك — تقول وثائق Google نفسها إن 307 «مكافئة لـ302» في كيفية معالجة إعادة التوجيه، ولا يعامل أي من الرمزين كإشارة تجعل الوجهة canonical. لكن Google لم تنشر معادلة دقيقة لـPageRank أو قيمة الروابط لأي رمز، فلا تجزم بانتقال متساوٍ أو غير متساوٍ محدد؛ العبارة الدقيقة هي أن Google تعالجهما بالطريقة نفسها، لا أنها حددت مقدار القيمة الممررة.
  • «302 هي الاختيار الأكثر أمانًا أو الموصى به لأن طريقة تعامل محركات البحث معها أوضح». مبالغة. فمعاملة Google لـ307 موثقة بالقدر نفسه («مكافئة لـ302»)، وليست حالة يفهم فيها محرك البحث أحد الرمزين أكثر. وإذا كان من شيء، فـ307 تقدم ضمانًا وظيفيًا (حفظ الطريقة والجسم) لا تقدمه 302. (تقول بعض الأدلة الخارجية العكس؛ انظر ملاحظة تبويب الموارد.)
  • «رؤية 307 في تبويب Network تعني أن خادمي أساء إعداد إعادة التوجيه». غالبًا خطأ — إذا كانت HSTS مفعلة وكنت قد حملت نسخة HTTPS من قبل، فهذه 307 ترقية HTTP إلى HTTPS ينفذها Chrome نفسه، لا استجابة خادم.
  • «302 تحول POST دائمًا إلى GET، فلا تستخدم 302 للنموذج». مبالغة مع المتصفحات الحديثة. كان تحويل POST إلى GET مشكلة حقيقية وموثقة لدى العملاء القدامى — ولهذا وجدت 307 كخيار مضمون، لا دليلًا على أن كل 302 اليوم تسقط بيانات POST. 302 غامضة، وليست معطلة عالميًا.
  • «بدّل كل عمليات التوجيه المؤقتة إلى 307 لتحصل على دفعة في الترتيب». خطأ وتغيير لا لزوم له — لا مكسب في الترتيب. السبب الصحيح الوحيد لتفضيل 307 هو حاجة حقيقية إلى حفظ الطريقة والجسم (أو تحصين المستقبل عمومًا).
  • «303 و307 متشابهتان أساسًا». لا — 303 تفرض تغيير الطريقة إلى GET (مبنية على نمط POST ثم إعادة التوجيه إلى صفحة نتيجة)، وهي النقيض الوظيفي لضمان 307 في الحفظ. يسهل الخلط بينهما لأنهما مدرجتان معًا.

توصيتي

لإعادة التوجيه المؤقتة، ترتيبي المفضل للتنفيذ هو 307 / 302 / 303، قبل meta refresh (0) وHTTP refresh (0). لاحظ أنني أضع 307 فوق 302 — لا لأنها تساعد SEO (لا تفعل)، بل لأن استخدام الرمز الحافظ للطريقة دائمًا يقلل حاجتك إلى تذكر التبديل لاحقًا: إعادة توجيه GET عادية تعمل جيدًا كـ307، وفي اليوم الذي تعيد فيه توجيه نموذج أو API تكون محميًا سلفًا. هذه حجة اكتمال، وليست بلا تكلفة — فسياسة 307 الافتراضية تحتاج إلى الانضباط نفسه في Cache-Control كأي إعادة توجيه، وإلى العمل مع العملاء القدامى الذين تدعمهم فعلًا، وإلى ضوابط القابلية للتكرار لأي وجهة ليست جلب GET عاديًا. وقد أشار Mueller إلى الاكتمال نفسه: “if you always use them, then you’re always safe.” (ترجمة) «إذا استخدمتها دائمًا فأنت آمن دائمًا». ومع ذلك، 302 العادية مناسبة تمامًا، وفي حالة m-dot المحددة تكون 302 أصح تقنيًا.

أين يقع هذا في المجموعة

302 و307 رمزان من رموز إعادة التوجيه المؤقتة 3xx، ولكل منهما مقال متعمق في هذه المجموعة، إلى جانب الزوج الدائم (301 و308)، والشقيقة 303 التي تستخدم GET دائمًا، ومقارنات الأشقاء — 301 مقابل 308 في طبقة الدائم (منطق حفظ الطريقة نفسه لكن درجة أعلى) و301 مقابل 302 بين الدائم والمؤقت — فضلًا عن مخاطر التشغيل وسلاسل إعادة التوجيه وحلقاتها. ولعائلة استجابات الخادم كاملة، راجع مركز رموز حالة HTTP؛ فنوع إعادة التوجيه أيضًا إحدى إشارات canonicalization التي يغطيها canonicalization.

Try it live

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

Open in new tab ↗
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.