Зачем отправлять заголовок с кодом состояния?

У меня есть страница в php, к которой я не хочу иметь доступ, кроме моего приложения. если нет предопределенного сеанса, я отправил заголовок.

Тогда я подумал, используя

header("HTTP/1.1 401 Unauthorized");
exit();

Все работает хорошо, и я могу добавить свое собственное «Неавторизованное сообщение», которое я хочу. Но почему? Я легко не могу отправить какой-либо заголовок (по умолчанию будет 200) с моим «Неавторизованным сообщением».

Какой смысл сообщать браузеру код состояния, если он ничего не делает?

Редактировать: я хочу лучше объясниться. Неважно, будет ли это 404, 403 или 500. Браузер сам по себе не покажет никаких сообщений, и если я не буду использовать выход, он продолжит отображать остальную часть страницы. так как это помогает мне отправить заголовок?


person gil    schedule 01.02.2014    source источник
comment
Если вы сообщите браузеру код состояния, он будет что-то делать, он сообщит пользователю, что его доступ к странице неавторизован: аналогичным образом он сообщит другим методам доступа (таким как curl) то же самое вещь.... но вы не должны просто отправлять ответ 401, но также включать поле заголовка WWW-Authenticate, содержащее вызов, применимый к запрошенному ресурсу   -  person Mark Baker    schedule 02.02.2014
comment
Гил, я полагаю, что твой ответ находится внутри файла .htaccess.   -  person Orel Eraki    schedule 02.02.2014
comment
@MarkBaker заголовок, который я отправил, показывает белую страницу. и если я не буду использовать выход(), он покажет остальную часть страницы   -  person gil    schedule 02.02.2014
comment
@gil - если вы отправляете 401, вы также должны отправить поле заголовка WWW-Authenticate, возможно, вместо этого вам следует отправить 403, который должен включать причину отклонения запроса.   -  person Mark Baker    schedule 02.02.2014
comment
Заголовок — это просто строка данных, запрашивающая у браузера перенаправление. Остальная часть страницы по-прежнему будет обслуживаться PHP и может быть просмотрена клиентом, просто запретив выполнение команды заголовка.   -  person sergio    schedule 02.02.2014


Ответы (1)


Код состояния 401 вызовет всплывающее окно аутентификации на стороне клиента. (Для этого также необходим заголовок WWW-Authenticate...)

Подробности например тут:

http://en.wikipedia.org/wiki/Basic_access_authentication

person Lajos Veres    schedule 01.02.2014