Pepelen
Тестирование ПО: профессия QA с нуля

Lesson

Урок 2. Коды ответов HTTP: 2xx, 3xx, 4xx, 5xx

Интерпретировать коды ответов HTTP и отличать ошибку клиента от ошибки сервера.

1 / 6

Классы HTTP-кодов и ключевые коды

Что говорит нам код ответа

HTTP-коды делятся на классы по первой цифре. 2xx — успех: запрос принят и обработан (200 OK — стандартный успех). 3xx — перенаправление: клиенту нужно обратиться по другому адресу. 4xx — ошибка на стороне клиента: запрос составлен неверно или прав нет. 5xx — ошибка на стороне сервера: запрос правильный, но сервер не справился. Ключевые коды, которые тестировщик встречает каждый день: 200 OK — всё хорошо, данные в теле ответа; 404 Not Found — ресурс по этому URL не существует; 401 Unauthorized — пользователь не аутентифицирован или токен неверный; 403 Forbidden — пользователь аутентифицирован, но прав на это действие нет; 500 Internal Server Error — что-то сломалось на сервере. Правило различия 401 и 403: спросите себя — помогут ли правильные логин/пароль? Если да (пользователь не вошёл или передал неверный токен) — ожидайте 401. Если нет (пользователь вошёл, но у него просто нет прав) — ожидайте 403. Это частая ошибка реализации: разработчик возвращает не тот код, и тестировщик должен это поймать. Почему тестировщик смотрит на код, а не только на экран? Интерфейс может показывать «Что-то пошло не так» при любой ошибке, а код ответа точно говорит, кто виноват — клиент или сервер. Кроме того, некоторые баги видны только в коде ответа: например, API возвращает 200, но в теле — пустой список там, где должны быть данные.
Lesson notes
Что говорит нам код ответа
HTTP-коды делятся на классы по первой цифре. 2xx — успех: запрос принят и обработан (200 OK — стандартный успех). 3xx — перенаправление: клиенту нужно обратиться по другому адресу. 4xx — ошибка на стороне клиента: запрос составлен неверно или прав нет. 5xx — ошибка на стороне сервера: запрос правильный, но сервер не справился. Ключевые коды, которые тестировщик встречает каждый день: 200 OK — всё хорошо, данные в теле ответа; 404 Not Found — ресурс по этому URL не существует; 401 Unauthorized — пользователь не аутентифицирован или токен неверный; 403 Forbidden — пользователь аутентифицирован, но прав на это действие нет; 500 Internal Server Error — что-то сломалось на сервере. Правило различия 401 и 403: спросите себя — помогут ли правильные логин/пароль? Если да (пользователь не вошёл или передал неверный токен) — ожидайте 401. Если нет (пользователь вошёл, но у него просто нет прав) — ожидайте 403. Это частая ошибка реализации: разработчик возвращает не тот код, и тестировщик должен это поймать. Почему тестировщик смотрит на код, а не только на экран? Интерфейс может показывать «Что-то пошло не так» при любой ошибке, а код ответа точно говорит, кто виноват — клиент или сервер. Кроме того, некоторые баги видны только в коде ответа: например, API возвращает 200, но в теле — пустой список там, где должны быть данные.
Урок 2. Коды ответов HTTP: 2xx, 3xx, 4xx, 5xx — Тестирование ПО: профессия QA с нуля