Ответ
HTTP-коды состояния (status codes) — это стандартные трехзначные числовые ответы сервера на запрос клиента. Их основное назначение — информировать клиента о результате обработки его запроса.
Каждый код помогает клиенту (например, браузеру или другому приложению) понять, что делать дальше:
- Успех (2xx): Можно обработать полученные данные.
- Перенаправление (3xx): Нужно сделать новый запрос по другому URL.
- Ошибка клиента (4xx): Нужно исправить что-то в запросе (например, URL, заголовки или тело) и повторить его.
- Ошибка сервера (5xx): Проблема на стороне сервера, можно попробовать повторить запрос позже.
Правильное использование кодов состояния критически важно при проектировании REST API, так как оно позволяет создавать предсказуемые и легко отлаживаемые интерфейсы.
Пример возврата кодов состояния на сервере (Python, Flask):
from flask import Flask, jsonify, request
app = Flask(__name__)
users = {"1": {"name": "Alice"}}
@app.route('/users/<user_id>')
def get_user(user_id):
user = users.get(user_id)
if user:
# Успех: возвращаем данные и код 200 OK
return jsonify(user), 200
else:
# Ошибка клиента: ресурс не найден, возвращаем ошибку и код 404 Not Found
return jsonify({"error": "User not found"}), 404
@app.route('/users', methods=['POST'])
def create_user():
if not request.json or not 'name' in request.json:
# Ошибка клиента: неверный формат запроса, код 400 Bad Request
return jsonify({"error": "Invalid request body"}), 400
# Логика создания пользователя...
new_user_id = str(len(users) + 1)
users[new_user_id] = {"name": request.json['name']}
# Успех: ресурс создан, возвращаем его и код 201 Created
return jsonify(users[new_user_id]), 201