Junior
122
questionbank
Как клиенту определить, был ли запрос успешным?
Ответ от нейросети
sobes.tech AI
Клиент может определить успех запроса по следующим признакам:
- Код статуса HTTP: Наиболее надежный способ. Коды в диапазоне от 200 до 299 (например, 200 OK, 201 Created, 204 No Content) указывают на успешное выполнение запроса. Коды 4xx (ошибки клиента) и 5xx (ошибки сервера) означают неудачу.
- Тело ответа: В успешном ответе может содержаться ожидаемая полезная нагрузка (например, JSON-данные, XML, HTML). Отсутствие или unexpected content может указывать на проблему, даже при успешном коде статуса.
- Заголовки ответа: Некоторые заголовки (например,
Content-Type,Content-Length) могут подтверждать тип и размер полученных данных. - Обработка исключений: На стороне клиента, при возникновении сетевых ошибок или таймаутов, будут подняты исключения, которые следует обрабатывать.
Пример проверки кода статуса в Python с использованием библиотеки requests:
import requests
try:
response = requests.get("https://api.example.com/data")
# Проверка кода статуса HTTP
if 200 <= response.status_code < 300:
print("Запрос успешен.")
# Можно парсить response.json() или response.text
else:
print(f"Запрос завершился с ошибкой: {response.status_code}")
# Обработка ошибок 4xx и 5xx
except requests.exceptions.RequestException as e:
# Обработка сетевых ошибок (например, таймаут, ошибка подключения)
print(f"Ошибка при выполнении запроса: {e}")
Сводная таблица кодов статуса HTTP:
| Диапазон | Описание | Пример |
|---|---|---|
| 1xx | Информационные | 100 Continue |
| 2xx | Успех | 200 OK |
| 3xx | Перенаправление | 301 Moved Permanently |
| 4xx | Ошибка клиента | 404 Not Found |
| 5xx | Ошибка сервера | 500 Internal Server Error |