Какие знаешь HTTP статус-коды
Разбор вопроса «Какие знаешь HTTP статус-коды» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.
Вопрос
Какие знаешь HTTP статус-коды
Профессия
Frontend Developer
Что хочет услышать интервьюер
Интервьюер хочет убедиться, что кандидат понимает систему HTTP статус-кодов, может объяснить их назначение и привести примеры из реального опыта. Также важно показать, как эти знания применяются в разработке (например, обработка ошибок).
Ключевые тезисы
- HTTP статус-коды делятся на 5 групп: 1xx (информационные), 2xx (успех), 3xx (перенаправление), 4xx (ошибка клиента), 5xx (ошибка сервера).
- Примеры популярных кодов: 200 (OK), 201 (Created), 400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 500 (Internal Server Error).
- Важно понимать разницу между похожими кодами, например, 401 (требуется аутентификация) и 403 (доступ запрещен).
- Знание специфических кодов, таких как 429 (Too Many Requests) или 418 (I'm a teapot), может показать глубину знаний.
Подробный ответ
HTTP статус-коды используются для информирования клиента о результате выполнения запроса. Они делятся на пять групп: 1xx (информационные), 2xx (успех), 3xx (перенаправление), 4xx (ошибка клиента), 5xx (ошибка сервера). Каждая группа имеет свое назначение и помогает быстро понять, что произошло с запросом. Например, коды 2xx (например, 200 OK) указывают на успешное выполнение запроса, а коды 4xx (например, 404 Not Found) сигнализируют об ошибках на стороне клиента. Важно понимать разницу между похожими кодами, например, 401 (Unauthorized) означает, что запрос требует аутентификации, а 403 (Forbidden) — что доступ к ресурсу запрещен даже при успешной аутентификации. Знание специфических кодов, таких как 429 (Too Many Requests) или 418 (I'm a teapot), может показать глубину знаний и понимание стандартов HTTP.
Практические примеры
Пример 1
Пример 1: Если пользователь отправляет запрос на создание нового ресурса (например, POST /api/users), успешный ответ должен содержать статус-код 201 (Created) и заголовок Location с URI созданного ресурса.
Пример 2
Пример 2: Если сервер не может обработать запрос из-за слишком большого количества запросов от одного клиента, он возвращает статус-код 429 (Too Many Requests) с указанием времени, через которое можно повторить запрос.
Пример 3
Пример 3: Если запрошенный ресурс не найден (например, GET /api/users/999), сервер возвращает статус-код 404 (Not Found), указывая на отсутствие ресурса.
Частые ошибки
- Ошибка: Путаница между статус-кодами 401 (Unauthorized) и 403 (Forbidden). Кандидаты часто не понимают, что 401 требует аутентификации, а 403 запрещает доступ даже при ее наличии.
- Ошибка: Использование статус-кода 500 (Internal Server Error) для всех ошибок сервера, включая ошибки, связанные с клиентом (например, неправильный ввод данных).
Связанные темы
- RESTful API: Понимание HTTP статус-кодов важно для проектирования и работы с RESTful API.
- HTTP методы: Знание статус-кодов тесно связано с пониманием HTTP методов (GET, POST, PUT, DELETE и т.д.).
- Websocket: Хотя Websocket использует другой протокол, знание HTTP статус-кодов может быть полезно при установлении соединения.
Follow-up вопросы
Какой статус-код вернется, если страница не найдена?
Уровень: basic
Вернется статус-код 404 (Not Found). Это означает, что сервер не смог найти запрашиваемый ресурс.
В чем разница между 401 и 403 статус-кодами?
Уровень: intermediate
401 (Unauthorized) означает, что запрос требует аутентификации, но она не предоставлена. 403 (Forbidden) означает, что сервер понял запрос, но отказывается его выполнять из-за ограничений доступа, даже если аутентификация пройдена.
Какой статус-код следует использовать при успешном создании ресурса?
Уровень: intermediate
Следует использовать статус-код 201 (Created). Он указывает, что запрос был успешно выполнен и в результате был создан новый ресурс.
Что означает статус-код 429 (Too Many Requests)?
Уровень: advanced
Статус-код 429 означает, что пользователь отправил слишком много запросов за короткий промежуток времени (rate limiting). Сервер может включить заголовок Retry-After, указывающий, через сколько можно повторить запрос.
Когда может пригодиться статус-код 418 (I'm a teapot)?
Уровень: advanced
Это шуточный статус-код из RFC 2324 (Hyper Text Coffee Pot Control Protocol). На практике он не используется, но может быть задействован в тестовых или демонстрационных целях для обработки нестандартных запросов.
Какие знаешь HTTP-запросы
Разбор вопроса «Какие знаешь HTTP-запросы» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.
В чем разница между TCP и UDP
Разбор вопроса «В чем разница между TCP и UDP» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.