http-headers - español - header(''content-type: text/html; charset=utf-8'');
¿Cuál es el código de estado HTTP más apropiado para devolver si falta un encabezado requerido? (1)
Leí ¿Qué código de respuesta de estado HTTP debo usar si a la solicitud le falta un parámetro requerido? pero no preguntaba específicamente sobre los encabezados y no parecía haber consenso.
El contexto de esta pregunta supone una autenticación exitosa. Actualmente estoy favoreciendo un 400 (aunque eso no se siente bien porque este no es realmente un caso de "sintaxis malformada") o 403. Dada la descripción del 403:
El servidor entendió la solicitud, pero se niega a cumplirla. La autorización no ayudará y la solicitud NO DEBE repetirse. Si el método de solicitud no era HEAD y el servidor desea hacer público el motivo por el cual la solicitud no se ha cumplido, DEBE describir el motivo de la denegación en la entidad.
Esto tiene más sentido para mí.
¿Alguien puede por favor iluminarme? Gracias.
400 Petición Incorrecta
Es un error de usuario en la solicitud. A diferencia de un 403, al cliente se le debe permitir repetir su solicitud, pero solo después de la modificación:
10.4.1 400 Solicitud incorrecta La solicitud no pudo ser entendida por el servidor debido a la sintaxis mal formada. El cliente NO DEBE repetir la solicitud sin modificaciones.
Editar
Como señala Mark Reed en los comentarios, un 403 dice: "No hay nada de malo en lo que me enviaste. Tienes la autorización adecuada y la sintaxis era válida. Simplemente no quiero hacer lo que me pides".
La parte que tiene en negrita simplemente dice, si el servidor así lo elige, puede decirle al cliente exactamente por qué no quiere cumplir con la solicitud.