Разкажете за 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