Как утверждает Гуффа в своем ответе, задайте только описание, если вы не хотите использовать W3C-defined defaults.
В большинстве случаев это не имеет видимого эффекта для большинства пользователей. Описание, как правило, просто игнорируется, и только для кодов ошибок 4xx и 5xx, когда-либо отображаемых пользовательским агентом, в случае отсутствия тела, указанного либо с ответом. Он появляется в журналах и консолях разработчика в браузерах, поэтому он не похож на полностью скрытый.
Иногда бывает полезно сделать ошибки более подробными. Например, текст по умолчанию для 403
- Forbidden
, но это нормально, чтобы установить его на 403 Invalid user domain
, если это так - это может сделать процесс отладки более удобным в один прекрасный день или помочь отделу поддержки. Особенно для типичных ошибок, таких как 500, часто бывает лучше дать немного больше информации, хотя этого недостаточно, чтобы быть угрозой безопасности. Кроме того, если у вас есть дополнительная информация о проблеме, это должно быть объяснено полностью в теле, а не в описании статуса HTTP.
Наконец, чтобы ответить на последний вопрос - если вы пришлете ответ 403 OK
, ничего не сгорит, ничто не взорвется, и ни один браузер не выйдет из строя. Вы можете только безнадежно путать пользователя, который видит сообщение, что просто глупо, что нужно делать, как бросать SQLException
нарочно, когда у вас проблема с дисковым пространством. Браузер только смотрит на 403 и обрабатывает его, но пользователь не будет благодарным клиентом.