Sobes.tech
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}")