Est-il possible d'envoyer un 401 non autorisé ET de redirection (avec un Emplacement)?

Je voudrais envoyer un 401 Unauthorized ET de rediriger le client quelque part. Cependant:

si je fais comme ça:

header('HTTP/1.1 401 Unauthorized');
header('Location: /');

le serveur envoie un 302 Found avec Location, donc pas un 401 Unauthorized.

Si je fais comme ça:

header('Location: /');
header('HTTP/1.1 401 Unauthorized');

le navigateur reçoit un 401 Unauthorized et un Location, mais ne redirige pas.

(IE 9 et Chrome 16 se comportent de la même façon, donc je suppose que c'est correct)

Peut-être que je suis mauvais usage de HTTP? J'aimerais que mon interface de l'application pour être exactement le même pour tous les clients: navigateur texte, un navigateur moderne, les appels d'API etc. Le 401 + texte de la réponse serait de dire à un utilisateur API de quoi il s'agit. La redirection est utile pour un navigateur.

Est-il une (bonne) manière?

InformationsquelleAutor Rudie | 2012-01-08