Ir al contenido principal
tai · http

HTTP 401, 403 y ETag: ejercicios resueltos para TAI

Actualizado Marcelo Cabrera 4 min de lectura

Respuesta rápida: 401 trata de credenciales de autenticación; 403, de una petición entendida que el servidor no atiende. Un ETag identifica una versión de la representación y, con If-None-Match, puede terminar en 304 Not Modified sin reenviar el cuerpo.

Las preguntas de protocolos suelen cambiar una palabra para mezclar autenticación, autorización y caché. Esta práctica usa supuestos propios; no son preguntas oficiales. La referencia es el estándar RFC 9110 y la especificación de caché RFC 9111.

El mapa que evita el error

SituaciónRespuesta que debes asociar
Faltan credenciales o no sirven401 Unauthorized y reto WWW-Authenticate
Las credenciales existen, pero el recurso se rechaza403 Forbidden
El cliente valida una copia y no cambió304 Not Modified, sin cuerpo de respuesta

No conviertas estos nombres en una regla de interfaz: un servidor puede no revelar por qué deniega algo. En un examen, el dato decisivo es la semántica que define el RFC, no cómo una aplicación concreta redacta su pantalla.

Ejercicio 1: token ausente

Una API protege /notas. El cliente envía GET /notas sin cabecera Authorization. El servidor exige autenticación HTTP y responde con una cabecera que indica el esquema aceptado.

¿Qué estado encaja?

A. 200 OK.

B. 401 Unauthorized.

C. 403 Forbidden.

D. 304 Not Modified.

Solución: B. La semántica de 401 es que faltan credenciales de autenticación válidas para la petición y la respuesta debe incluir al menos un reto WWW-Authenticate. El nombre histórico “Unauthorized” confunde: el detalle técnico aquí es autenticación, no un permiso ya evaluado.

Ejercicio 2: usuario autenticado sin permiso

Una persona ya se autenticó correctamente. Pide DELETE /informes/7, pero la política del servidor no le permite borrar informes. El servidor entiende la petición y decide no atenderla.

¿Qué estado es el mejor?

A. 401.

B. 403.

C. 304.

D. 500.

Solución: B. 403 Forbidden expresa que el servidor comprendió la solicitud y se niega a satisfacerla. Repetir la misma credencial no resuelve el motivo descrito. No deduzcas de 403 que exista una pantalla de permisos: el estándar permite al servidor ocultar información adicional.

Ejercicio 3: copia en caché y ETag

Un navegador conservó una representación de /temario con ETag: "v8". Más tarde manda GET /temario con If-None-Match: "v8". El recurso no cambió.

¿Qué debe esperar el cliente?

A. 304 Not Modified, sin el cuerpo de la representación.

B. 401, porque falta un token nuevo.

C. 403, porque la copia local es privada.

D. 201 Created, porque se creó una versión.

Solución: A. El ETag es un validador de la representación. Cuando la condición de If-None-Match muestra que la representación almacenada sigue siendo válida, la validación permite responder 304 y reutilizar el cuerpo que ya está en caché. 304 no significa que la URL no exista ni que el servidor haya fallado.

Ejercicio 4: cambia el ETag

En el mismo caso, la versión publicada ahora tiene ETag: "v9".

¿Qué no puedes afirmar?

A. Que el cliente puede necesitar una representación nueva.

B. Que el valor v8 ya no es el validador de la versión actual.

C. Que el servidor debe responder 304.

D. Que ETag participa en una validación condicional.

Solución: C. Si el validador no coincide, la condición no acredita que la copia previa siga vigente. La respuesta habitual será una representación actual con éxito; 304 está precisamente ligado a poder reutilizar la almacenada.

Método de repaso

En cada supuesto subraya primero el hecho técnico: “sin credenciales”, “credenciales aceptadas pero rechazo” o “validación de copia”. Solo después mira el número. Así evitas elegir 403 porque te suena a “prohibido” cuando el enunciado realmente describe un reto de autenticación.

Si preparas el bloque de redes y protocolos del TAI, el Pack Temario TAI 2027 reúne el temario desarrollado. Este artículo es práctica complementaria y no sustituye la lectura del estándar.

Preguntas frecuentes

¿Cuál es la diferencia entre HTTP 401 y 403?

401 Unauthorized indica que faltan credenciales de autenticación válidas y debe incluir al menos un reto WWW-Authenticate. 403 Forbidden significa que el servidor entendió la petición pero rechaza atenderla.

¿ETag cifra el contenido?

No. Es un validador de representación para comparar versiones; su uso con If-None-Match puede permitir una respuesta 304 sin cuerpo.

¿Un 304 es un error?

No. Es una respuesta de validación que permite reutilizar la representación almacenada cuando sigue siendo válida.

Fuentes

Artículos relacionados