505 HTTP Version Not Supported: خطأ بروتوكول نادر
505 HTTP Version Not Supported يعني أن الخادم يرفض إصدار HTTP الرئيسي الذي استخدمه الطلب.
505 HTTP Version Not Supported يعني أن الخادم يرفض إصدار HTTP الذي استخدمه العميل في طلبه. ومع المتصفحات الحديثة يكاد يكون منقرضًا، لأن HTTP/2 وHTTP/3 يُتفق عليهما قبل إرسال أي طلب. وعندما يظهر، يكون السبب عادةً طلبًا مشوهًا أو برمجيات قديمة جدًا.
التعريف
يقول RFC 9110، القسم 15.6.6 إن الخادم «لا يدعم، أو يرفض دعم، الإصدار الرئيسي من HTTP الذي استُخدم في رسالة الطلب»، وإنه ينبغي أن يشرح السبب والبروتوكولات التي يدعمها.
كيف تُختار الإصدارات فعليًا
- يذكر HTTP/1.1 إصداره في سطر الطلب (
GET / HTTP/1.1). - يُتفق على HTTP/2 أثناء مصافحة TLS عبر ALPN (
h2)، فلا يصل إصدار غير مدعوم إلى مرحلة الطلب أصلًا. - يُعلَن عن HTTP/3 بترويسة
Alt-Svcأو بسجلات HTTPS في DNS، وتتراجع العملاء إلى إصدار آخر إذا فشل.
لذلك يظهر 505 غالبًا عندما يكون سطر الطلب معطوبًا أو مبنيًا يدويًا: مسافة خام في رابط تربك المحلل (يبلّغ بعض الخوادم عن ذلك بـ 505 وبعضها بـ 400)، أو سكربت يكتب HTTP/2.0 في سطر طلب نصي، أو جهاز قديم لا يتحدث إلا HTTP/1.0.
التأثير على السيو
تدعم زواحف Google بروتوكولي HTTP/1.1 وHTTP/2، ويزحف Googlebot عبر HTTP/2 عندما يفيد ذلك الموقع. وتعامل Google الرمز 505 كأي 5xx آخر: يتباطأ الزحف وتُسقط في النهاية الروابط التي تواصل الفشل (وثائق Google). فإذا تلقى Googlebot رموز 505، فابحث عن بروكسي أو جهاز أمان بين الإنترنت وخادمك يسيء التعامل مع أحد هذين الإصدارين. وقد أوضحت Google أيضًا أن بإمكان الموقع الانسحاب من الزحف عبر HTTP/2 بالرد بالرمز 421 Misdirected Request؛ فلا تستخدم 505 لذلك.
كيف تصلحه
- رمّز المسافات والمحارف الخاصة في الروابط (
%20) أينما تُولَّد الروابط. - حدّث أو أعد ضبط موزّعات الأحمال وجدران حماية التطبيقات (WAF) والبروكسيات القديمة لتقبل HTTP/1.1 وHTTP/2.
- في السكربتات استخدم مكتبة HTTP حقيقية بدل كتابة أسطر الطلب يدويًا.
كيف تتحقق
تبيّن أداة اختبار سرعة الصفحة إصدار HTTP الذي يستخدمه خادمك، وتعرض أداة فحص ترويسات HTTP الرد كاملًا، وتخبرك أداة فحص حالة HTTP أي الروابط تفشل.
GET /index.html HTTP/2.0
Host: legacy.example.com
HTTP/1.1 505 HTTP Version Not Supported
Content-Type: text/plain
Connection: close الأسئلة الشائعة
هل يمكن أن يسبب المتصفح خطأ 505؟
نادرًا. تتفاوض المتصفحات الحديثة على HTTP/2 أو HTTP/3 قبل إرسال الطلبات وتتراجع إلى HTTP/1.1. والرمز 505 يشير عادةً إلى سكربت أو جهاز قديم أو رابط معطوب.
ما إصدارات HTTP التي يستخدمها Googlebot؟
تذكر وثائق الزواحف لدى Google دعم HTTP/1.1 وHTTP/2. ويستخدم Googlebot الإصدار HTTP/2 عندما يفيد الموقع، ويمكن للخادم الانسحاب بالرد 421.
كيف أصلح خطأ 505؟
تحقق هل تحتوي الروابط الفاشلة على مسافات غير مرمّزة أو محارف غريبة، ثم افحص أي بروكسي أو جدار حماية أمام خادمك. وتأكد أن كل طبقة تقبل HTTP/1.1 وHTTP/2.