Назад к вопросам
Junior
74
questionbank

Расскажи о статус-кодах HTTP.

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Статус-коды HTTP — это трехзначные числа, возвращаемые сервером в ответ на запрос клиента, и указывающие на результат обработки запроса. Они классифицируются по первой цифре:

  • 1xx (Informational): Запрос принят, обработка продолжается.
  • 2xx (Success): Запрос успешно получен, понят и принят.
  • 3xx (Redirection): Для завершения запроса необходимы дополнительные действия.
  • 4xx (Client Error): Запрос содержит синтаксическую ошибку или не может быть выполнен.
  • 5xx (Server Error): Сервер не смог выполнить правильно сформированный запрос.

Примеры наиболее распространенных кодов:

Код Категория Значение Описание
100 Informational Continue Сервер получил начальную часть запроса
200 Success OK Запрос успешно выполнен
201 Success Created Запрос выполнен, создан новый ресурс
204 Success No Content Запрос выполнен, ответ не содержит тела
301 Redirection Moved Permanently Ресурс перемещен окончательно
302 Redirection Found (Temporarily Moved) Ресурс временно перемещен
304 Redirection Not Modified Ресурс не изменялся с момента последнего запроса
400 Client Error Bad Request Некорректный синтаксис запроса
401 Client Error Unauthorized Требуется аутентификация
403 Client Error Forbidden Доступ к ресурсу запрещен
404 Client Error Not Found Ресурс по указанному URL не найден
405 Client Error Method Not Allowed Использован недопустимый метод HTTP
500 Server Error Internal Server Error Внутренняя ошибка сервера
502 Server Error Bad Gateway Неверный ответ от вышестоящего сервера
503 Server Error Service Unavailable Сервер временно недоступен

Знание статус-кодов помогает понять причину ошибки, отладить запросы и определить успешность их выполнения. В автоматизации тестирования часто используются для проверки ожидаемого результата API запросов.

import requests

url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)

# Проверка статус-кода на успешное выполнение (200 OK)
if response.status_code == 200:
    print("GET запрос успешен")
else:
    print(f"Ошибка GET запроса: статус-код {response.status_code}")

url_not_found = "https://jsonplaceholder.typicode.com/nonexistent"
response_not_found = requests.get(url_not_found)

# Проверка статус-кода на ресурс не найден (404 Not Found)
if response_not_found.status_code == 404:
    print("Ресурс не найден (ожидаемое поведение)")
else:
    print(f"Получен неожиданный статус-код: {response_not_found.status_code}")