Назад к вопросам
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
}
}