🤷♂️ Error 417 – Falló la expectativa (Expectation Failed)
El error 417 aparece cuando el servidor no puede cumplir con la expectativa indicada por el cliente en la cabecera:
El cliente usa esta cabecera para decirle al servidor:
“Dime si está todo OK antes de enviarte el cuerpo completo de la solicitud.”
Si el servidor no puede aceptar esa expectativa o no la soporta, devuelve 417.
✅ Causas más comunes
-
📩 El servidor no soporta la cabecera
Expect: 100-continue. -
🚫 El servidor rechaza la solicitud antes de recibir el cuerpo (body).
-
🔧 Configuraciones incorrectas en proxies o balanceadores.
-
🧩 Librerías HTTP que agregan
Expect: 100-continueautomáticamente. -
📦 Envío de archivos grandes donde el cliente pregunta si puede continuar.
-
🔐 El servidor o firewall considera la expectativa como sospechosa.
-
⚙️ El servidor requiere otros encabezados o condiciones que no se cumplen.
🔧 Soluciones recomendadas
1️⃣ Eliminar la cabecera Expect: 100-continue (la solución más común)
Muchos servidores simplemente no soportan esta expectativa.
En cURL:
En Axios:
En Node.js con http:
2️⃣ Configurar el servidor para aceptar 100-continue
En Nginx:
Nginx ignora esta cabecera por defecto.
Para evitar 417, permite manejarla adecuadamente o elimínala en el balanceador.
En Apache:
Asegura que mod_proxy o mod_http no bloqueen solicitudes con esta cabecera.
3️⃣ Desactivar expectativas automáticas en librerías
Algunas librerías envían Expect: 100-continue si el body es grande.
Ejemplos:
-
cURL
-
Python Requests
-
.NET HttpClient
Debes desactivarlo en configuraciones avanzadas.
4️⃣ Revisar si un proxy está interfiriendo
Los proxies corporativos suelen rechazar solicitudes con esta cabecera.
Solución:
-
Configurar el proxy para permitirla
-
O eliminar la cabecera desde la aplicación
5️⃣ Corregir solicitudes mal formadas
Si envías una expectativa inválida:
→ 417 inmediato.
Solo se admite normalmente:
6️⃣ Usar directamente una petición normal sin expectativa
En la mayoría de casos, enviar el body sin solicitar permiso previo es suficiente.
🔐 Consejo Pro
El uso de Expect: 100-continue solo es útil cuando:
-
Envías archivos muy grandes
-
Quieres evitar subir todo el archivo si el servidor lo va a rechazar
Si no lo necesitas, elimínalo siempre.
Esto evita errores 417 y simplifica tus solicitudes.
No comments to display
No comments to display