Junior
Какви са HTTP кодовете за отговор и как се различават помежду си?
sobes.tech AI
Отговор от AI
Кодовете за отговор на HTTP са триизрични числа, които сървърът връща като отговор на заявка от клиента. Те показват статуса на обработката на заявката и предоставят информация дали е успешно завършена, дали е възникнала грешка или дали е необходима допълнителна дейност.
Кодовете са разделени в пет класа:
- 1xx (Информационни): Заявката е приета, обработката продължава.
- 2xx (Успешни): Заявката е успешно получена, разбрана и обработена.
- 3xx (Пренасочвания): Клиентът трябва да предприеме допълнителни действия за завършване на заявката.
- 4xx (Грешки на клиента): Заявката съдържа синтактична грешка или не може да бъде обработена.
- 5xx (Грешки на сървъра): Сървърът не можа да изпълни заявката.
Разликите между кодовете се крият в тяхната семантика, свързана с различните етапи на обработка на заявката и възможните резултати.
Примери за често използвани кодове:
| Код | Описание | Клас |
|---|---|---|
| 200 | OK | Успешни |
| 201 | Създадено | Успешни |
| 301 | Постоянно преместено | Пренасочвания |
| 302 | Намерено | Пренасочвания |
| 400 | Невалидна заявка | Грешки на клиента |
| 401 | Неоторизиран | Грешки на клиента |
| 403 | Забранено | Грешки на клиента |
| 404 | Не е намерено | Грешки на клиента |
| 500 | Вътрешна грешка на сървъра | Грешки на сървъра |
| 503 | Услугата не е налична | Грешки на сървъра |
// Пример за обработка на 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);
});