Junior
Разкажи за HTTP статус кодовете.
sobes.tech AI
Отговор от AI
Кодовете за състояние на HTTP са тризначни числа, които сървърът връща като отговор на заявка от клиент и показват резултата от обработката на заявката. Те се класифицират по първата цифра:
- 1xx (Информационни): Заявката е приета, обработката продължава.
- 2xx (Успех): Заявката е успешно получена, разбрана и приета.
- 3xx (Пренасочване): За завършване на заявката са необходими допълнителни действия.
- 4xx (Грешка на клиента): Заявката съдържа синтактична грешка или не може да бъде изпълнена.
- 5xx (Грешка на сървъра): Сървърът не можа да изпълни правилно форматирана заявка.
Примери за най-често срещаните кодове:
| Код | Категория | Стойност | Описание |
|---|---|---|---|
| 100 | Информационен | Продължете | Сървърът получи началната част на заявката |
| 200 | Успех | OK | Заявката е успешно изпълнена |
| 201 | Успех | Създадено | Заявката е изпълнена, създаден е нов ресурс |
| 204 | Успех | Без съдържание | Заявката е изпълнена, отговорът не съдържа тяло |
| 301 | Пренасочване | Постоянно преместен | Ресурсът е окончателно преместен |
| 302 | Пренасочване | Намерен (временно преместен) | Ресурсът е временно преместен |
| 304 | Пренасочване | Не е модифициран | Ресурсът не е променян от последната заявка |
| 400 | Грешка на клиента | Невалиден заявка | Неправилна синтаксис на заявката |
| 401 | Грешка на клиента | Неоторизиран | Изисква се удостоверяване |
| 403 | Грешка на клиента | Забранено | Достъпът до ресурса е забранен |
| 404 | Грешка на клиента | Не е намерен | Ресурсът по посочения URL не е намерен |
| 405 | Грешка на клиента | Метод не е разрешен | Използваният HTTP метод не е разрешен |
| 500 | Грешка на сървъра | Вътрешна грешка на сървъра | Вътрешна грешка на сървъра |
| 502 | Грешка на сървъра | Неправилен шлюз | Невярна отговор от горестоящ сървър |
| 503 | Грешка на сървъра | Услугата е недостъпна | Сървърът е временно недостъпен |
Знанието за кодовете за състояние помага да се разбере причината за грешката, да се отстранят проблемите и да се определи успехът на изпълнението им. Често се използват в автоматизираното тестване за проверка на очаквания резултат от 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}")