#php #http
На 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');
Ответы
Ответ 1
По стандарту – "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-запросах является специальная страница, которая говорит о том, что случилась какая-то ошибка, но о ней уже известно и идёт работа над тем, чтобы её исправить.
Комментариев нет:
Отправить комментарий