Автор оригинала: Чидуме Ннамди
Переводчик: Джоти, UC International R&D
Спереди написано: Добро пожаловать в официальный аккаунт «UC International Technology», мы предоставим вам качественные технические статьи, связанные с клиентом, сервером, алгоритмом, тестированием, данными, интерфейсом и т. д., не ограничиваясь оригинальностью и перевод.
Взаимодействие между клиентом и сервером очень важно в веб-разработке и облегчает высокодинамичное клиентское приложение. Пользователь отправляет запрос на сервер, нажимая кнопку в интерактивном режиме, сервер извлекает данные и возвращает их, страницу не нужно перезагружать и напрямую использует возвращенные данные для повторного рендеринга ее части/всего содержимого или работы на данные.
Технический принцип этого является AJAX, который реализуется через экземпляр XMLHTTPREQUEST. Чтобы улучшить опыт использования AJAX и XMLHTTPREQUEST, сообщество разработало некоторые библиотеки, которые напрямую выпускают HTTP-запросы, не занимаясь AJAX и XMLHTTTREQUEST.
В этой статье вы познакомитесь с пятью самыми популярными библиотеками HTTP и их реализацией. Я надеюсь помочь вам сэкономить немного времени.
Совет. Избегайте дублирования кода, делясь общими компонентами синхронизации с Bit. Превратите код той же функции в общий компонент, вы сможете использовать его где угодно, и сборка будет быстрее ~ попробуйте прямо сейчас.
Axios
HTTP-клиент на основе Promise для браузеров и Node.js
Axios — это HTTP-библиотека на основе Promise для выполнения HTTP-запросов в Node.js и браузерах, поддерживающая все современные браузеры, даже IE8+!
преимущество
Поддерживает как Node.js, так и браузеры.
Обещанная поддержка API
Может настраивать или отменять запросы
Время ожидания ответа может быть установлено
Поддерживает защиту от атак с подделкой межсайтовых запросов (XSRF).
Может перехватывать невыполненные запросы или ответы
Поддержка отображения прогресса загрузки
Широко используется в проектах React и Vue.
недостаток
более проблематично в использовании
Superagent
Модифицированный Ajax — используется с HTTP-клиентом Node.js.
Superagent — это облегченный прогрессивный AJAX API на основе Promise, идеально подходящий для отправки HTTP-запросов и получения ответов сервера. Как и Axios, он работает как на Node, так и во всех современных браузерах.
Сделать HTTP-запрос с помощью Superagent так же просто, как вызвать метод объекта запроса:
преимущество
У него есть экосистема плагинов, и дополнительные функции могут быть реализованы путем создания плагинов.
Настраиваемый
Интерфейс отправки HTTP-запросов удобен
Вы можете добавлять методы в цепочку запросов
Работает с браузерами и узлом
Поддержка отображения загрузки и загрузки
Поддержка кодирования фрагментированной передачи
Поддержка обратных вызовов в старом стиле
Процветающая экосистема плагинов, которая поддерживает множество общих функций.
недостаток
Его API не соответствует никаким стандартам
Request
🏊🏾 Упрощенный клиент HTTP-запросов
Запрос предоставляет упрощенный способ создания HTTP-запросов. Вы можете делать HTTP-запросы с меньшим количеством кода, чем другие HTTP-библиотеки. Это не основано на промисах, но если вам нужны промисы, вы можете импортироватьrequest-promise
Библиотека, которая оборачивает запрос как промис и возвращает его.
преимущество
Простой и удобный API
недостаток
Не основано на обещаниях
Fetch
преимущество
Гибкий и простой в использовании
Избегайте ада обратных вызовов с промисами
Поддерживает все современные браузеры
Соблюдайте схему запрос-ответ
Простой и понятный синтаксис
Реагировать на нативную поддержку
недостаток
Использование на стороне сервера не поддерживается
Отсутствие изюминок библиотеки разработки, таких как отмена запросов
Нет встроенных значений по умолчанию, таких как режим запроса, заголовки запроса, учетные данные запроса.
Supertest
Драйвер суперагента с плавным API для тестирования HTTP-серверов Node.js.
Супертест используется для тестирования HTTP-серверов Node.js. Библиотека поддерживается SuperAgent, который сочетает в себе собственный API с базовым API SuperAgent для обеспечения лаконичного тестового интерфейса HTTP.
преимущество
Свободный API
Простое HTTP-утверждение
Можно смешивать с различными наборами тестов, такими как Chai.js и Mocha.
недостаток
Браузер не поддерживается
Суммировать
Проанализировав популярные HTTP-библиотеки, вы можете спросить: «Какую выбрать?»
Я бы сказал, что выбор библиотеки зависит от вашего проекта, размера и целевых пользователей, и у каждого выбора есть свои плюсы и минусы. Если вы выберете неправильную библиотеку для своей ошибочной спецификации, вам придется подумать об этом и снова выбрать правильный инструмент.
Если у вас есть какие-либо вопросы или вы чувствуете, что вам нужно добавить, исправить или удалить какие-либо вопросы, пожалуйста, не стесняйтесь комментировать, писать по электронной почте или отправлять мне личное сообщение. Спасибо за прочтение! 👏
Исходный адрес: https://blog.bitsrc.io/comparing-http-request-libraries-for-2019-7bedb1089c83?gi=89b097d4bfd1
Хорошая рекомендация статьи:
Стремление к максимальной производительности JavaScript: предложение AST для бинарных файлов TC39
Как бы выглядела ваша карьера, если бы на рынке был только один браузер?
«UC International Technology» стремится делиться с вами высококачественными техническими статьями.
Добро пожаловать, чтобы подписаться на наш официальный аккаунт и поделиться статьей с друзьями