¿Qué narices es esto?
El código 401 Unauthorized es el "papers, please" de HTTP. Es la respuesta del servidor cuando intentas acceder a algo pero no has demostrado quién eres, o tus credenciales están mal. Es como intentar entrar a un club exclusivo sin estar en la lista, o peor aún, con un DNI falsificado que ni siquiera está bien hecho.
A pesar del nombre "Unauthorized", realmente debería llamarse "Unauthenticated". No es que no tengas permisos (eso sería 403), sino que no has probado tu identidad correctamente. Es el equivalente digital de que el portero del antro te diga "no sé quién eres, así que no pasas".
El 401 aparece típicamente cuando:
- No incluyes un token de autenticación en la petición
- El token está mal formado o es inválido
- El token ha expirado (ya no es válido)
- Las credenciales de usuario/contraseña son incorrectas
- La sesión ha caducado o fue invalidada
🎯 Dato curioso
El 401 DEBE incluir un header WWW-Authenticate que le diga al cliente cómo autenticarse. Si no lo incluye, técnicamente está mal implementado. Es como rechazar a alguien sin decirle qué documentos necesita.
Lo tricky del 401 es que puede aparecer incluso cuando piensas que estás autenticado. Tu token puede haberse expirado justo antes de la petición, o el servidor puede haber reiniciado y perdido tu sesión. Es como llegar a una cita y que te digan "perdón, pero ya no te conozco". Por eso es crucial implementar refresh de tokens y manejo graceful de re-autenticación.