Условие
Выберите элементы структуры ответа REST API:
- Код состояния
- Метод
- Заголовок
- Тело запроса
- Тело ответа
- Конечная точка
Задание засчитывается, если все варианты выбраны правильно.
Решение
Элементы ответа: Код состояния, Заголовок, Тело ответа.
Не относятся к ответу:
- Метод (
GET,POST, ...) — это часть запроса. - Тело запроса — часть запроса.
- Конечная точка (URL) — часть запроса.
Структура HTTP-обмена
Запрос (Request):
POST /api/v1/users HTTP/1.1
Host: api.example.com
Authorization: Bearer xxx
Content-Type: application/json
{"name": "Иван"}
Состоит из:
- метод (
POST) - URL / endpoint (
/api/v1/users) - заголовки (Headers)
- тело запроса (Body)
Ответ (Response):
HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/v1/users/42
{"id": 42, "name": "Иван"}
Состоит из:
- код состояния (
201) - заголовки (Headers — версия HTTP, тип контента, локация и т.д.)
- тело ответа (Body — JSON/XML/etc.)
Коды состояния
| Класс | Значение | Примеры |
|---|---|---|
| 1xx | Информационные | 100 Continue |
| 2xx | Успех | 200 OK, 201 Created, 204 No Content |
| 3xx | Перенаправление | 301 Moved, 304 Not Modified |
| 4xx | Ошибка клиента | 400 Bad Request, 401 Unauthorized, 404 Not Found |
| 5xx | Ошибка сервера | 500 Internal, 502 Bad Gateway, 503 Unavailable |
Подводные камни
- Заголовки есть и в запросе, и в ответе — но это разные наборы. В вопросе «заголовок» относится к ответу (например,
Content-Typeотдаваемого JSON-а). 204 No Content— у ответа есть код и заголовки, но нет тела. Это валидно.HEADзапрос возвращает только заголовки (тело пустое). Используется для проверки доступности ресурса.
Эталонный ответ
Код состояния, Заголовок, Тело ответа — три элемента структуры HTTP-ответа REST API.