505

HTTP Version Not Supported

Cuando tu cliente habla HTTP/2 pero el servidor sigue en HTTP/0.9. El drama de las versiones incompatibles que rompe todo.

💥 Server Error

📋 ¿Qué narices es esto?

El código 505 HTTP Version Not Supported es el "no hablo tu idioma" de HTTP. Es cuando tu cliente moderno intenta hablar HTTP/2 o HTTP/3 con un servidor que aún piensa que el HTTP/1.0 es lo más avanzado que existe. Como cuando intentas usar emojis con tu tío que aún tiene un Nokia 3310.

Version Not Supported significa exactamente eso - el servidor dice: "esa versión de HTTP que me estás enviando no la entiendo ni la soporto". Generalmente pasa cuando hay un desfase tecnológico brutal entre cliente y servidor, o cuando alguien configuró mal el reverse proxy y se lió con las versiones.

El 505 aparece típicamente en:

  • Servidores legacy que solo soportan HTTP/1.0 o HTTP/1.1
  • Clientes que fuerzan HTTP/2 en servidores no compatibles
  • Proxies mal configurados que no entienden las versiones
  • APIs antiguas que no han migrado a protocolos modernos
  • Cuando alguien envía una versión HTTP inventada o malformada

🎯 Dato curioso

El 505 es como el "Windows Vista" de los códigos HTTP: técnicamente válido, pero nadie quiere encontrárselo. Significa que alguien (cliente o servidor) se quedó atrás en la evolución del protocolo, y ahora no pueden comunicarse.

La situación típica es brutal: tu cliente moderno envía una petición HTTP/2 con todas las optimizaciones modernas, y el servidor responde básicamente con "¿qué carajo es eso?". No hay degradación elegante, no hay fallback automático - simplemente comunicación imposible. Es el equivalente tecnológico de intentar enchufar un USB-C en un puerto serial.

🔧 Cómo arreglar este desastre

🖥️ Para servidores (actualízate ya)

  1. Verifica versiones soportadas: Chequea qué HTTP maneja tu servidor.
  2. Actualiza el software: Apache, Nginx, IIS modernos soportan HTTP/2.
  3. Configura degradación: Permite fallback a HTTP/1.1 si hay problemas.
  4. Revisa proxies: Load balancers que entiendan múltiples versiones.
  5. Testa compatibilidad: Prueba con clientes modernos y legacy.

📱 Para desarrolladores (arregla el código)

  1. Detecta la versión: Verifica qué HTTP está usando tu cliente.
  2. Implementa fallback: Degrada a HTTP/1.1 si el servidor no soporta HTTP/2.
  3. Maneja el 505: Reintenta con versión más antigua del protocolo.
  4. Documenta versiones: Especifica qué HTTP requiere tu API.
  5. Usa librerías modernas: Que manejen automáticamente las versiones.

Problemas típicos con 505

  • Servidor legacy sin actualizar:
    HTTP/1.0 200 OK - Server: Apache/1.3.x
    Servidores antiguos que no entienden HTTP/2 o HTTP/3.
  • Cliente forzando versión no soportada:
    curl --http2-prior-knowledge http://servidor-antiguo.com
    Forcejar HTTP/2 en servidores que no lo soportan genera 505.
  • Proxy mal configurado:
    Cliente HTTP/2 → Proxy HTTP/1.0 → Servidor HTTP/1.1
    El proxy no sabe traducir entre versiones de protocolo.

🚀 Respuesta rápida para emergencias

🔥 Si tienes un 505 ahora mismo:
1. Fuerza HTTP/1.1 en tu cliente temporalmente
2. Verifica la configuración del servidor/proxy
3. Actualiza el software del servidor si es posible
🎯 Truco ninja:
Usa curl -v para ver exactamente qué versión HTTP está negociando tu cliente con el servidor.