Какие группы HTTP статус кодов существуют
HTTP статус кодыQA инженерВеб-разработкаПротокол HTTPСерверные ответы
Что проверяют
Знаете ли вы группы и умеете ли выбрать правильный код в конкретной ситуации. Второе важнее перечисления.
Как отвечать
Пять групп по первой цифре.
| группа | смысл | чаще всего |
|---|---|---|
| 1xx | информационные | 101 при переходе на веб-сокет |
| 2xx | успех | 200, 201 создано, 204 без тела |
| 3xx | перенаправление | 301 навсегда, 302 временно, 304 не изменилось |
| 4xx | ошибка клиента | 400, 401, 403, 404, 409, 422, 429 |
| 5xx | ошибка сервера | 500, 502, 503, 504 |
Пары, которые различают на собеседовании:
- 401 против 403: первый «не представился», второй «представился, но нельзя»;
- 301 против 302: первый переносит вес ссылок и кэшируется браузером надолго, второй временный;
- 400 против 422: тело не разобралось против «разобралось, но не прошло проверку»;
- 404 против 410: не найдено против «было и удалено навсегда»;
- 502 против 504: плохой ответ от вышестоящего сервиса против таймаута ожидания.
Полезно упомянуть 429 с заголовком Retry-After для ограничения частоты и 409 для конфликта версий.
Где спотыкаются
Отдают 200 с телом {"error": ...}. Тогда клиенты, прокси и мониторинг считают запрос успешным, и ошибки не видно в метриках.
Путают 401 и 403.
Ставят 500 на любую ошибку, включая невалидный ввод пользователя, и статистика ошибок сервера теряет смысл.