Sobes.tech
Junior
109
questionbank

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

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

sobes.tech AI

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

Категории статус-кодов:

  • 1xx (Информационные): Сервер принял запрос и продолжает процесс.
  • 2xx (Успех): Запрос успешно обработан.
  • 3xx (Перенаправление): Дополнительное действие необходимо для выполнения запроса.
  • 4xx (Ошибка клиента): Запрос содержит синтаксическую ошибку или не может быть обработан.
  • 5xx (Ошибка сервера): Сервер не смог выполнить запрос, несмотря на то, что он был действительным.

Часто встречающиеся статус-коды:

Код Название Описание
200 OK Запрос успешно обработан.
201 Created Ресурс успешно создан.
204 No Content Запрос успешно обработан, ответ не содержит тела.
301 Moved Permanently Ресурс перемещен на новый постоянный URL.
302 Found Ресурс временно доступен по другому URL.
304 Not Modified Ресурс не изменялся с момента последнего запроса.
400 Bad Request Сервер не смог понять запрос из-за неверного синтаксиса.
401 Unauthorized Требуется аутентификация.
403 Forbidden Доступ к ресурсу запрещен.
404 Not Found Запрашиваемый ресурс не найден.
405 Method Not Allowed Метод HTTP, используемый в запросе, не разрешен для ресурса.
409 Conflict Конфликт при обработке запроса, например, создание существующего ресурса.
422 Unprocessable Entity Синтаксически правильный запрос, но семантически неверный.
500 Internal Server Error Внутренняя ошибка сервера.
501 Not Implemented Сервер не поддерживает функционал, необходимый для выполнения запроса.
503 Service Unavailable Сервер временно недоступен.

При тестировании API статус-коды являются ключевым индикатором успешности или провала теста. Проверка корректного статус-кода для каждого типа запроса (GET, POST, PUT, DELETE и т.д.) в различных сценариях (успех, ошибка валидации, отсутствие ресурса, авторизация) является основой функционального тестирования API.

Например, при создании нового ресурса (POST-запрос) ожидается статус 201 Created, при получении несуществующего ресурса (GET-запрос) - 404 Not Found.

import requests

# Пример проверки статус-кода при успешном запросе
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
# Ожидаем статус 200 OK
assert response.status_code == 200

# Пример проверки статус-кода при несуществующем ресурсе
response_not_found = requests.get('https://jsonplaceholder.typicode.com/posts/9999')
# Ожидаем статус 404 Not Found
assert response_not_found.status_code == 404