Полный список enum HTTP-кодов ответа в Java: решение
Быстрый ответ
К сожалению, в Java не предусмотрено универсальное перечисление HTTP-кодов ответа. Тем не менее, можно использовать класс HttpStatus
из Spring Framework для доступа к большому количеству кодов:
// Использование HttpStatus из Spring
System.out.println(HttpStatus.NOT_FOUND.value()); // Возвращает 404
Для доступа к основному набору кодов вы можете применить класс HttpURLConnection
:
// Использование HttpURLConnection
System.out.println(HttpURLConnection.HTTP_NOT_FOUND); // Возвращает 404
Хотите найти более полный список кодов? Обратите внимание на Apache HttpClient или Guava.
Глубже в тему
Использование Apache HttpComponents
Apache HttpComponents не предоставляет встроенное перечисление, но класс org.apache.http.HttpStatus
содержит константы для всех HTTP-кодов ответа:
// Использование Apache HttpStatus
System.out.println(HttpStatus.SC_NOT_FOUND); // Выводит 404
Стойте перед лицом правды, значит признайте, что HttpStatus из Apache HttpClient не развивается и считается устаревшим.
Применение Spring для HTTP-кодов состояния
Spring Framework предлагает перечисление org.springframework.http.HttpStatus
, которое регулярно обновляется и включает больше классов, чем стандартная Java:
// Используя HttpStatus от Spring
HttpStatus status = HttpStatus.valueOf(404);
System.out.println(status.getReasonPhrase()); // Выводит "Not Found"
Применение HttpServletResponse в Servlet API
Если вы работаете с сервлетами, то изучите класс javax.servlet.http.HttpServletResponse
. Он содержит все HTTP-коды ответа в виде констант, возвращающих значения типа int:
// Используя HttpServletResponse
System.out.println(HttpServletResponse.SC_NOT_FOUND); // Выводит 404
Создание собственного перечисления HttpStatusCode
Создайте своё перечисление HttpStatusCode со специальными методами getByValue()
и toString()
для возвращения и отображения HTTP-кодов состояния:
public enum HttpStatusCode {
OK(200, "OK"),
NOT_FOUND(404, "Not Found"); // Добавьте другие статусы при необходимости
private final int value;
private final String reason;
HttpStatusCode(int value, String reason) {
this.value = value;
this.reason = reason;
}
public static HttpStatusCode getByValue(int value) {
// Реализуйте логику поиска статуса по числовому значению
}
@Override
public String toString() {
return this.value + " " + this.reason; // Вывод статуса
}
}
Это позволит добиться соответствия официальной документации с HTTP-кодами состояния.
Визуализация
HTTP-коды ответа классифицируются по категориям:
📚 Библиотека HTTP-кодов состояния
-----------------------------------
📘 Информационные (1xx): [100, 101, 102]
📗 Успешные (2xx): [200, 201, 202, ...]
📒 Перенаправления (3xx): [300, 301, 302, ...]
📕 Ошибки клиента (4xx): [400, 401, 402, ...]
📔 Ошибки сервера (5xx): [500, 501, 502, ...]
Эти категории покрывают все известные статусы.
📚✅ Полная ли коллекция? **Java и коды состояния HTTP:**
- Перечисления Java: `HttpServletResponse.SC_*` и `HttpStatus.*`
- Полный ли перечисленный набор? Возможно, некоторые редкие коды отсутствуют.
Для полного охвата вам возможно придется добавлять коды вручную.
Лучшие практики и дополнительные ресурсы
Учет специфики работы с сервлетами
При работе с веб-приложениями вам часто придется сталкиваться с HttpServletResponse
, поскольку он содержит основные стандартные HTTP-статусы.
Обновляетесь вместе с временем
Реестр статус-кодов HTTP Status Code Registry всегда содержит самую актуальную информацию и свежие обновления по кодам состояния.
Изучаем официальную документацию
Используйте Java EE 7 API и документацию Spring для org.springframework.http.HttpStatus
для получения актуальной информации и понимания контекста применения HTTP-кодов.
Полезные материалы
- Response.Status (API спецификаций Java(TM) EE 7) — документация Java API для HTTP-кодов.
- Реестр статус-кодов HTTP Status Code Registry — официальный реестр HTTP-кодов.
- HttpStatus (API Spring Framework 6.1.3) — описание перечисления HttpStatus в Spring Framework.
- HTTP-коды состояния ответа – HTTP | MDN — обучающее пособие по кодам HTTP для разработчиков.
- Jakarta REST — советы и примеры кода на Java для работы с HTTP-кодами.