Я хочу отправить 401 Unauthorized
и перенаправить клиент где-нибудь. Однако:
если я сделаю это следующим образом:
header('HTTP/1.1 401 Unauthorized');
header('Location: /');
сервер отправляет 302 Found
с Location
, поэтому не 401 Unauthorized
.
Если я сделаю это так:
header('Location: /');
header('HTTP/1.1 401 Unauthorized');
браузер получает как 401 Unauthorized
, так и Location
, но не перенаправляет.
(IE 9 и Chrome 16 ведут себя одинаково, поэтому я предполагаю, что это правильно)
Возможно, я злоупотребляю HTTP? Я бы хотел, чтобы мой интерфейс приложения был абсолютно одинаковым для всех клиентов: текстовый браузер, современный браузер, вызовы API и т.д. Текст ответа 401 + сказал бы пользователю API о том, что. Переадресация полезна для браузера.
Есть ли (хороший) способ?