1. El cliente usa una versión de HTTP no soportada
Ejemplos:
-
HTTP/0.9 → muy antiguo
-
HTTP/1.0 → muchos servidores modernos lo rechazan
-
HTTP/2 → no habilitado en el servidor
-
HTTP/3 → no soportado en backend o firewall
2. El cliente solicita características no válidas para la versión de HTTP enviada
Como:
-
Encabezados no permitidos
-
Métodos no soportados en esa versión
-
Peticiones mal formadas
3. Configuraciones del servidor que limitan versiones HTTP
Por seguridad o compatibilidad:
-
Apache configurado solo para HTTP/2
-
Nginx sin soporte para HTTP/1.0
-
Servidores legacy que no reconocen HTTP/2
4. Proxy o CDN modificando la versión de HTTP
Cloudflare, AWS ELB o un proxy intermedio puede enviar la solicitud en una versión diferente a la esperada.
5. Firewalls o balanceadores bloqueando versiones antiguas
Especialmente HTTP/1.0 o 0.9.
6. Clientes antiguos o scripts obsoletos
Herramientas antiguas como:
-
cURL muy viejo
-
Bots o crawlers antiguos
-
Bibliotecas desactualizadas
Soluciones recomendadas
1) Actualizar la versión HTTP usada por el cliente
Ejemplo con cURL:
Forzar HTTP/1.1:
Forzar HTTP/2:
2) Habilitar soporte de versiones en el servidor
En Nginx – habilitar HTTP/2:
En Apache:
En Node.js:
Usar módulo HTTP/2 o HTTP/1.1 según necesidad.
3) Actualizar navegadores o clientes
Si la herramienta es muy antigua, puede enviar versiones obsoletas.
Ejemplo:
Navegadores modernos ya no usan HTTP/1.0 para solicitudes normales.
4) Revisar configuraciones de Cloudflare o CDN
Cloudflare siempre usa HTTP/2/3 hacia el usuario, pero el backend puede no soportarlo.
Soluciones:
-
Activar compatibilidad
-
Desactivar HTTP/3 temporalmente
-
Revisar certificados SSL
5) Corregir peticiones mal formadas
Ejemplo de petición inválida:
No existe → 505.
6) Actualizar software del servidor
Versiones antiguas de:
-
Apache
-
Nginx
-
LiteSpeed
-
Node.js
pueden carecer de soporte para HTTP moderno.
Consejo Pro
El error 505 te indica que hay un desajuste entre el cliente y el servidor, no un problema del backend.
Para evitarlo:
-
Mantén los servidores actualizados
-
Habilita HTTP/2 cuando sea posible
-
Desactiva versiones antiguas como HTTP/1.0 y 0.9
-
Asegúrate de que tus clientes usan versiones compatibles
Esto mejora seguridad, velocidad y compatibilidad.