Полный список enum HTTP-кодов ответа в Java: решение

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

К сожалению, в Java не предусмотрено универсальное перечисление HTTP-кодов ответа. Тем не менее, можно использовать класс HttpStatus из Spring Framework для доступа к большому количеству кодов:

Java
Скопировать код
// Использование HttpStatus из Spring
System.out.println(HttpStatus.NOT_FOUND.value()); // Возвращает 404

Для доступа к основному набору кодов вы можете применить класс HttpURLConnection:

Java
Скопировать код
// Использование HttpURLConnection
System.out.println(HttpURLConnection.HTTP_NOT_FOUND); // Возвращает 404

Хотите найти более полный список кодов? Обратите внимание на Apache HttpClient или Guava.

Кинга Идем в IT: пошаговый план для смены профессии

Глубже в тему

Использование Apache HttpComponents

Apache HttpComponents не предоставляет встроенное перечисление, но класс org.apache.http.HttpStatus содержит константы для всех HTTP-кодов ответа:

Java
Скопировать код
// Использование Apache HttpStatus
System.out.println(HttpStatus.SC_NOT_FOUND); // Выводит 404

Стойте перед лицом правды, значит признайте, что HttpStatus из Apache HttpClient не развивается и считается устаревшим.

Применение Spring для HTTP-кодов состояния

Spring Framework предлагает перечисление org.springframework.http.HttpStatus, которое регулярно обновляется и включает больше классов, чем стандартная Java:

Java
Скопировать код
// Используя HttpStatus от Spring
HttpStatus status = HttpStatus.valueOf(404);
System.out.println(status.getReasonPhrase()); // Выводит "Not Found"

Применение HttpServletResponse в Servlet API

Если вы работаете с сервлетами, то изучите класс javax.servlet.http.HttpServletResponse. Он содержит все HTTP-коды ответа в виде констант, возвращающих значения типа int:

Java
Скопировать код
// Используя HttpServletResponse
System.out.println(HttpServletResponse.SC_NOT_FOUND); // Выводит 404

Создание собственного перечисления HttpStatusCode

Создайте своё перечисление HttpStatusCode со специальными методами getByValue() и toString() для возвращения и отображения HTTP-кодов состояния:

Java
Скопировать код
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-коды ответа классифицируются по категориям:

Markdown
Скопировать код
📚 Библиотека HTTP-кодов состояния
-----------------------------------
📘 Информационные (1xx): [100, 101, 102]
📗 Успешные (2xx): [200, 201, 202, ...]
📒 Перенаправления (3xx): [300, 301, 302, ...]
📕 Ошибки клиента (4xx): [400, 401, 402, ...]
📔 Ошибки сервера (5xx): [500, 501, 502, ...]

Эти категории покрывают все известные статусы.

Markdown
Скопировать код
📚✅ Полная ли коллекция? **Java и коды состояния HTTP:**
- Перечисления Java: `HttpServletResponse.SC_*` и `HttpStatus.*`
- Полный ли перечисленный набор? Возможно, некоторые редкие коды отсутствуют.

Для полного охвата вам возможно придется добавлять коды вручную.

Лучшие практики и дополнительные ресурсы

Учет специфики работы с сервлетами

При работе с веб-приложениями вам часто придется сталкиваться с HttpServletResponse, поскольку он содержит основные стандартные HTTP-статусы.

Обновляетесь вместе с временем

Реестр статус-кодов HTTP Status Code Registry всегда содержит самую актуальную информацию и свежие обновления по кодам состояния.

Изучаем официальную документацию

Используйте Java EE 7 API и документацию Spring для org.springframework.http.HttpStatus для получения актуальной информации и понимания контекста применения HTTP-кодов.

Полезные материалы

  1. Response.Status (API спецификаций Java(TM) EE 7) — документация Java API для HTTP-кодов.
  2. Реестр статус-кодов HTTP Status Code Registry — официальный реестр HTTP-кодов.
  3. HttpStatus (API Spring Framework 6.1.3) — описание перечисления HttpStatus в Spring Framework.
  4. HTTP-коды состояния ответа – HTTP | MDN — обучающее пособие по кодам HTTP для разработчиков.
  5. Jakarta REST — советы и примеры кода на Java для работы с HTTP-кодами.