JS HTTP 請求庫哪家強?Axios,Request,Superagent,Fetch 仍是 Supertest

原文做者:Chidume Nnamdi前端

譯者:UC 國際研發 Jothyios


寫在最前:歡迎你來到「UC國際技術」公衆號,咱們將爲你們提供與客戶端、服務端、算法、測試、數據、前端等相關的高質量技術文章,不限於原創與翻譯。算法

Web 開發中客戶端與服務器間的交互很是重要,它有利於客戶端應用高度動態化。用戶經過單擊按鈕的交互方式向服務器發送請求,服務器檢索數據並返回,頁面無需從新加載,直接使用返回的數據從新渲染其部分/總體內容,或者對數據進行操做。
promise

這其中的技術原理是 AJAX,經過 XMLHttpRequest 實例實現。 爲了提高 AJAX 及 XMLHttpRequest 的使用體驗,社區開發了一些無需處理 AJAX 和 XMLHttpRequest 就直接發出 HTTP 請求的庫。
瀏覽器

本文將帶你研究 5 個最流行的 HTTP 庫,瞭解它們是如何實現的。 但願能幫你省下一些時間。
服務器

提示:經過與 Bit 共享同步公共組件能夠避免代碼重複。 把相同的功能的代碼變成共享組件,就能夠隨處使用它了,構建更快喲~趕忙試試看。工具


Axios

基於 Promise 的 HTTP 客戶端,可用於瀏覽器和 Node.js
性能

Axios 是一個基於 Promise 的 HTTP 庫,可用在 Node.js 和瀏覽器上發起 HTTP 請求,支持全部現代瀏覽器,甚至包括 IE8+!測試

優勢

  • 同時支持 Node.js 和瀏覽器編碼

  • 支持 Promise API

  • 能夠配置或取消請求

  • 能夠設置響應超時

  • 支持防止跨站點請求僞造(XSRF)攻擊

  • 能夠攔截未執行的請求或響應

  • 支持顯示上傳進度

  • 普遍用於 React 和 Vue 項目

    缺點

    • 用起來比較麻煩


    Superagent

    改良版 Ajax——與 Node.js HTTP 客戶端搭配使用

    Superagent 是一個基於 Promise 的輕量級漸進式 AJAX API,很是適合發送 HTTP 請求以及接收服務器響應。 與 Axios 相同,它既適用於 Node,也適用於全部現代瀏覽器。

    用 Superagent 發起 HTTP 請求就像在 request 對象上調用方法同樣簡單:

    優勢

    • 它有一個插件生態,經過構建插件能夠實現更多功能

    • 可配置

    • HTTP 請求發送接口友好

    • 能夠爲請求鏈式添加方法

    • 適用於瀏覽器和 Node

    • 支持顯示上傳和下載進度

    • 支持分塊傳輸編碼

    • 支持舊風格的回調

    • 繁榮的插件生態,支持衆多常見功能

    缺點

    • 其 API 不符合任何標準


    Request

    🏊🏾 簡化版 HTTP 請求客戶端

    Request 提供了一種簡化的 HTTP 請求方式。 你可使用比其餘 HTTP 庫更少的代碼來發起 HTTP 請求。 它不是基於 Promise 的,但若是你須要 Promise,你能夠引入request-promise 庫,將請求封裝爲 Promise 並返回。

    優勢

    • API 簡單易用

    缺點

    • 不基於 Promise


    Fetch

    Fetch 是瀏覽器自帶的用於發送請求的 API,旨在替代 XMLHttpRequest。

    優勢

    • 靈活易用

    • 使用 Promise 避免回調地獄

    • 支持全部現代瀏覽器

    • 遵循 request-response 方案

    • 語法簡單清晰

    • 支持 React Native

    缺點

    • 不支持服務器端使用

    • 缺少開發庫的亮點功能,好比取消請求

    • 沒有內置默認值,如請求模式,請求頭,請求憑據。


    Supertest

    Superagent 驅動,有一套流暢的 API 用於測試 Node.js HTTP 服務器

    Supertest 用於測試 Node.js HTTP 服務器。 該庫由 SuperAgent 提供支持,它把自身的 API 和 SuperAgent 的底層 API 相結合,提供簡潔的 HTTP 測試接口。

    優勢

    • 流暢的 API

    • 簡單的 HTTP 斷言

    • 能夠與 Chai.js 和 Mocha 等不一樣的測試套件混用


    缺點

    • 不支持瀏覽器


    總結

    分析完熱門 HTTP 庫,你可能會問「我應該選擇哪個?」

    我想說,選擇哪一個庫取決於你的項目、規模和目標用戶,每一個選擇都有好有壞。 若是你爲誤判規格選擇了錯誤的庫,那就得考慮下這個問題,從新選擇合適的工具。

    若是你有任何疑問或以爲有須要補充、更正或刪除的,任何疑問都請隨時發表評論,發郵件或直接私信我。 謝謝閱讀!👏


    原文地址:https://blog.bitsrc.io/comparing-http-request-libraries-for-2019-7bedb1089c83?gi=89b097d4bfd1


    好文推薦:

    JavaScript 極致性能追求:TC39 二進制 AST 提案

    若是市場上只有一款瀏覽器,你的職業生涯會怎樣?



    「UC國際技術」致力於與你共享高質量的技術文章

    歡迎關注咱們的公衆號、將文章分享給你的好友

    相關文章
    相關標籤/搜索