Вопрос проверяет понимание различий между нативным HTTP-API браузера и сторонним HTTP-клиентом.
Fetch — это встроенный браузерный API для выполнения HTTP-запросов. Axios — сторонняя библиотека, предоставляющая более удобный интерфейс. Axios автоматически обрабатывает JSON и ошибки, Fetch требует больше ручной логики. Axios поддерживает interceptors, Fetch — нет. Выбор зависит от сложности проекта и требований к сетевой логике.
Fetch и Axios решают одну задачу — выполнение HTTP-запросов, но делают это по-разному.
Fetch — это нативный браузерный API.
Особенности:
Доступен без установки библиотек
Возвращает Promise
Не считает HTTP-ошибки (4xx, 5xx) ошибками
Требует ручного парсинга ответа
Пример типовой логики:
fetch(url)
.then(res => res.json()) // проверка status и парсинг вручную
Axios — это внешняя библиотека.
Особенности:
Автоматически парсит JSON
Бросает ошибку при 4xx и 5xx
Поддерживает interceptors
Удобнее для масштабных приложений
Fetch чаще используют:
в небольших проектах
без сложной логики авторизации
Axios чаще выбирают:
в SPA
при наличии авторизации
при сложной обработке ошибок
Вывод:
Fetch подходит для простых сценариев, Axios — для крупных frontend-приложений с общей сетевой инфраструктурой.