Sobes.tech
Junior

Разкажете за HTTP статус кодовете.

sobes.tech AI

Отговор от AI

Кодовете за състояние на HTTP са триизрични числа, които сървърът връща като отговор на заявка от клиента. Те показват резултата от заявката и предоставят информация за това как клиентът трябва да обработи отговора.

Кодовете за състояние са разделени в пет класа:

  • 1xx — Информационни: Заявката е приета, обработката продължава.
  • 2xx — Успешни: Заявката е успешно обработена.
  • 3xx — Пренасочване: Необходими са допълнителни действия за завършване на заявката.
  • 4xx — Грешка на клиента: Заявката съдържа синтактична грешка или не може да бъде изпълнена.
  • 5xx — Грешка на сървъра: Сървърът не можа да изпълни правилно заявката.

Някои от най-често срещаните статус кодове:

Код Описание Клас
200 OK Успешни
201 Създаден Успешни
204 Без съдържание Успешни
301 Постоянно пренасочен Пренасочване
302 Намерен Пренасочване
400 Невалиден заявка Грешка на клиента
401 Неоторизиран Грешка на клиента
403 Забранено Грешка на клиента
404 Не е намерен Грешка на клиента
500 Вътрешна грешка на сървъра Грешка на сървъра
503 Услугата е недостъпна Грешка на сървъра

При тестване на API е важно да се проверява дали правилните статус кодове се връщат като отговор на различни заявки (успешни, с грешки при валидиране, с грешни данни и т.н.), за да се гарантира предсказуемо поведение на системата.

Например, при създаване на ресурс се очаква 201, при успешно получаване на данни — 200, при заявка за несъществуващ ресурс — 404, а при грешка на сървъра — 500.

Пример за проверка на статус кода в автоматичен тест (на Python с използване на requests):

import requests

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

# Проверка, че заявката е върнала статус 200 OK
assert response.status_code == 200