Назад к вопросам
Junior
687
questionbank

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

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

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

  • 1xx (Informational): Запрос получен, идет обработка.
  • 2xx (Successful): Запрос успешно получен, понят и принят.
  • 3xx (Redirection): Необходимы дополнительные действия для завершения запроса.
  • 4xx (Client Error): Сервер не может обработать запрос из-за предполагаемой ошибки клиента.
  • 5xx (Server Error): Сервер не смог обработать правильно сформированный запрос.

Наиболее распространенные коды:

Код Описание Группа
100 Continue Informational
200 OK Successful
201 Created Successful
204 No Content Successful
301 Moved Permanently Redirection
302 Found Redirection
400 Bad Request Client Error
401 Unauthorized Client Error
403 Forbidden Client Error
404 Not Found Client Error
500 Internal Server Error Server Error
503 Service Unavailable Server Error

В тестировании мы проверяем правильность статус-кодов в ответах сервера, чтобы убедиться, что бэкенд корректно обрабатывает различные типы запросов (успешные, с ошибками клиента, серверные проблемы). Это критично для проверки логики API.

Автоматизация проверки статус-кодов:

import requests

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

# Проверка статуса 200
assert response.status_code == 200, f"Expected status code 200, but got {response.status_code}"

url_not_found = "https://jsonplaceholder.typicode.com/posts/999"
response_not_found = requests.get(url_not_found)

# Проверка статуса 404
assert response_not_found.status_code == 404, f"Expected status code 404, but got {response_not_found.status_code}"
import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;

import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;

public class ApiStatusTest {

    @Test
    public void testSuccessfulRequest() {
        given()
                .when()
                .get("https://jsonplaceholder.typicode.com/posts/1")
                .then()
                .statusCode(200); // Проверка статуса 200
    }

    @Test
    public void testNotFoundRequest() {
        given()
                .when()
                .get("https://jsonplaceholder.typicode.com/posts/999")
                .then()
                .statusCode(404); // Проверка статуса 404
    }
}