Этот вопрос проверяет понимание системы HTTP статус-кодов и их роли в веб-коммуникации между клиентом и сервером.
Коды ошибок (HTTP статус-коды) - это трехзначные числа, которые сервер возвращает в ответ на HTTP-запрос. Они указывают на результат обработки запроса: успех, перенаправление, ошибку клиента или сервера. Коды ошибок помогают клиенту понять, что произошло с запросом и как действовать дальше.
HTTP статус-коды стандартизированы и разделены на пять классов, каждый из которых обозначает определенный тип ответа.
100 Continue - сервер готов принять тело запроса
101 Switching Protocols - смена протокола
200 OK - запрос успешно обработан
201 Created - ресурс создан
204 No Content - успешно, но нет содержимого
301 Moved Permanently - постоянное перенаправление
302 Found - временное перенаправление
304 Not Modified - контент не изменился (кэш)
400 Bad Request - неверный синтаксис запроса
401 Unauthorized - требуется аутентификация
403 Forbidden - доступ запрещен
404 Not Found - ресурс не найден
429 Too Many Requests - слишком много запросов
500 Internal Server Error - внутренняя ошибка сервера
502 Bad Gateway - ошибка шлюза
503 Service Unavailable - сервис недоступен
504 Gateway Timeout - таймаут шлюза
javascript
// Клиент понимает как обработать ответ
fetch('/api/users')
.then(response => {
if (response.status === 200) {
return response.json();
} else if (response.status === 404) {
throw new Error('Ресурс не найден');
} else if (response.status === 500) {
throw new Error('Ошибка сервера');
}
});javascript
// Браузеры и HTTP-клиенты автоматически обрабатывают коды
if (response.status >= 400) {
// Автоматически обрабатывать ошибки
}javascript
// Логирование для анализа проблем
console.log(`HTTP ${response.status}: ${response.statusText}`);javascript
async function fetchData() {
try {
const response = await fetch('/api/data');
if (!response.ok) {
switch (response.status) {
case 400:
throw new Error('Неверный запрос');
case 401:
// Перенаправить на страницу логина
window.location.href = '/login';
return;
case 404:
throw new Error('Данные не найдены');
case 500:
throw new Error('Проблемы на сервере');
default:
throw new Error(`Ошибка: ${response.status}`);
}
}
return await response.json();
} catch (error) {
console.error('Ошибка запроса:', error);
showErrorToUser(error.message);
}
}javascript
// Express.js пример
app.get('/api/users/:id', (req, res) => {
const user = findUserById(req.params.id);
if (!user) {
return res.status(404).json({ error: 'Пользователь не найден' });
}
if (!req.user.hasPermission('view_user')) {
return res.status(403).json({ error: 'Доступ запрещен' });
}
res.status(200).json(user);
});Понимание что пошло не так
Возможность предпринять правильные действия
Быстрая диагностика проблем
Упрощение отладки
Мониторинг здоровья системы
Поисковые системы используют статус-коды для индексации
Правильные редиректы (301 vs 302) влияют на ранжирование
Вывод: HTTP статус-коды являются фундаментальной частью веб-коммуникации, обеспечивая стандартизированный способ информирования клиентов о результате обработки запросов и enabling автоматическую обработку различных сценариев.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию