Junior
108
questionbank
Что такое коды ответа HTTP и в чем заключается их отличие друг от друга?
Ответ от нейросети
sobes.tech AI
HTTP-коды ответа — это трехзначные числа, возвращаемые сервером в ответ на запрос клиента. Они указывают на статус обработки запроса и предоставляют информацию о том, успешно ли он выполнен, возникла ли ошибка или требуется дополнительное действие.
Коды делятся на пять классов:
- 1xx (Информационные): Запрос принят, обработка продолжается.
- 2xx (Успешные): Запрос успешно получен, понят и обработан.
- 3xx (Перенаправления): Клиенту необходимо выполнить дальнейшие действия для завершения запроса.
- 4xx (Ошибки клиента): Запрос содержит синтаксическую ошибку или не может быть выполнен.
- 5xx (Ошибки сервера): Сервер не смог выполнить запрос.
Отличия между кодами заключаются в их семантике, относящейся к различным этапам обработки запроса и возможным исходам.
Примеры часто используемых кодов:
| Код | Описание | Класс |
|---|---|---|
| 200 | OK | Успешные |
| 201 | Created | Успешные |
| 301 | Moved Permanently | Перенаправления |
| 302 | Found | Перенаправления |
| 400 | Bad Request | Ошибки клиента |
| 401 | Unauthorized | Ошибки клиента |
| 403 | Forbidden | Ошибки клиента |
| 404 | Not Found | Ошибки клиента |
| 500 | Internal Server Error | Ошибки сервера |
| 503 | Service Unavailable | Ошибки сервера |
// Пример обработки HTTP-ответа в JavaScript
fetch('/api/data')
.then(response => {
if (response.ok) { // Проверка на успешный статус (2xx)
return response.json();
} else {
// Обработка ошибок на основе кода статуса
console.error(`Ошибка HTTP: ${response.status}`);
if (response.status === 404) {
console.error('Ресурс не найден.');
}
throw new Error(`Ошибка HTTP: ${response.status}`);
}
})
.then(data => {
console.log('Данные получены:', data);
})
.catch(error => {
console.error('Ошибка загрузки данных:', error);
});