Страницы

Поиск по вопросам

среда, 12 июня 2019 г.

Как правильно: “503 Service Temporarily Unavailable” или “503 Service Unavailable”?

На 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-запросах является специальная страница, которая говорит о том, что случилась какая-то ошибка, но о ней уже известно и идёт работа над тем, чтобы её исправить.

Комментариев нет:

Отправить комментарий