На php.net отсутствует информация по формату заголовков header.
В спецификации HTTP/1.0 указано: 503 Service Unavailable
В сети встречаются оба формата записи:
header('HTTP/1.0 503 Service Unavailable');
header('HTTP/1.0 503 Service Temporarily Unavailable');
Так же интересует корректность этих заголовков:
header('HTTP/1.0 400 Bad Request');
header('HTTP/1.0 404 Not Found');
Ответ
По стандарту – "503 Service Unavailable"
Но вы вольны использовать любую формулировку или вовсе оставить только код
6.1.1 Status Code and Reason Phrase
The Status-Code element is a 3-digit integer result code of the
attempt to understand and satisfy the request. These codes are fully
defined in section 10. The Reason-Phrase is intended to give a short
textual description of the Status-Code. The Status-Code is intended
for use by automata and the Reason-Phrase is intended for the human
user. The client is not required to examine or display the Reason-
Phrase
(курсив мой)
6.1.1 Код состояния и поясняющая фраза
Код состояния — это трехциферный код, обозначающий попытку понять и ответить на запрос. Подобные коды подробно определяются в секции 10. Смысл поясняющей фразы в том, чтобы дать короткое текстовое описание кода состояния. Предполагается, что код состояния будет обрабатываться машиной, а поясняющую фразу будет читать человек. От клиента не требуется, чтобы он обрабатывал или отображал поясняющую фразу
Есть одна интересная оговорка о разнице между временными и постоянными поломками:
Except when responding to a HEAD request, the
server SHOULD include an entity containing an explanation of the
error situation, and whether it is a temporary or permanent
condition. User agents SHOULD display any included entity to the
user
На все запросы кроме HEAD [к ответу со статусом 5хх] сервер ДОЛЖЕН добавлять данные о ситуации, в которой произошла ошибка, а также о том, является проблема постоянной или временной. Пользовательские агенты [например, браузеры] ДОЛЖНЫ отображать пользователю любые приложенные данные.
Итог:
Вам не стоит беспокоиться о формулировке поясняющей фразы. Почти наверняка пользователь её не увидит, а программы вообще не должны её учитывать.
Вы должны приложить к ответу 5xx данные о том, почему произошла ошибка и является ли она постоянной или временной. Наверняка пользователь увидит эти данные.
По субъективному опыту, хорошим тоном в GET-запросах является специальная страница, которая говорит о том, что случилась какая-то ошибка, но о ней уже известно и идёт работа над тем, чтобы её исправить.
Комментариев нет:
Отправить комментарий