Что означают HTTP-коды состояния класса 2xx?

Ответ

Коды состояния класса 2xx (Success) означают, что клиентский запрос был успешно получен, понят и принят сервером.

Основные коды и их назначение:

Код Название Описание Типичный сценарий
200 OK Стандартный ответ для успешных запросов. Тело ответа содержит запрошенные данные. Успешный GET или PUT запрос.
201 Created Ресурс был создан в результате запроса. Успешный POST запрос в REST API.
204 No Content Сервер выполнил запрос, но не возвращает никакого содержимого в теле ответа. Успешный DELETE запрос или PUT без необходимости возврата данных.

Пример ответа 200 OK:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "success",
  "data": {
    "id": 42,
    "title": "Пример данных"
  }
}

Почему это важно: Корректное использование кодов 2xx позволяет клиенту однозначно определить успех операции и соответствующим образом обработать ответ.

Ответ 18+ 🔞

А, слушай, смотри, вот эти вот коды, которые с двойки начинаются — это же просто праздник какой-то, ёпта! Сервер тебе такой: «Всё, брат-программист, я твой запрос принял, понял и, главное, сделал! Не ссы, всё чики-пуки».

Короче, что это за магия:

Код Как называется Что значит Где это бывает
200 OK Всё прошло просто охуенно. Забирай свои данные и кайфуй. Ты что-то запросил (GET) или обновил (PUT) — и вот оно, на блюдечке.
201 Created Я, блядь, только что на сервере целый новый ресурс родил, вот тебе его адрес. Ты отправил POST запрос в какую-нибудь REST-ную APIшку, и она тебе родила новую запись в базе.
204 No Content Всё сделал, но возвращать тебе нихуя не буду. Сам всё понял, иди отсюда. Удалил что-то (DELETE) или обновил без необходимости что-то тебе назад пихать.

Вот, смотри, как выглядит этот самый 200-й «успех»:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "success",
  "data": {
    "id": 42,
    "title": "Пример данных"
  }
}

А зачем это всё, спросишь? Да чтобы твой клиентский код не бздел, понимаешь? Получил «200» — расслабься, парси данные. Получил «201» — значит, твой объект создался, можно его куда-то пристроить. Получил «204» — ну, всё, работа сделана, иди дальше. Без этой чёткой системы мы бы все тут с ума посходили, угарая от неопределённости, блядь. Всё по полочкам, как у взрослых.