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