axios

源碼閱讀

https://juejin.im/post/6885471967714115597#heading-15

* HTTP 攔截器的設(shè)計與實現(xiàn):

從 任務(wù)注冊、任務(wù)編排和任務(wù)調(diào)度 三個方面來分析 Axios 攔截器的實現(xiàn)。

任務(wù)注冊就是我們最常見的觀察者,維護 handlers 數(shù)組。

任務(wù)編排組裝任務(wù)調(diào)用鏈 chain,將 interceptor.fulfilled, interceptor.rejected? 和 dispatchAction,undeffined 和 interceptor.fulfilled, interceptor.rejected 拼接成任務(wù) chain 。

任務(wù)調(diào)度通過 while 語句我們就可以不斷地取出設(shè)置的任務(wù),然后組裝成 Promise 調(diào)用鏈從而實現(xiàn)任務(wù)調(diào)度

* HTTP 適配器的設(shè)計與實現(xiàn):

Axios 同時支持瀏覽器和 Node.js 環(huán)境,對于瀏覽器環(huán)境來說,我們可以通過 XMLHttpRequest 或 fetch API 來發(fā)送 HTTP 請求,而對于 Node.js 環(huán)境來說,我們可以通過 Node.js 內(nèi)置的 http 或 https 模塊來發(fā)送 HTTP 請求。

Axios 的適配器是通過 XMLHttpRequest !== 'undefined' 和 (typeof process !== 'undefined'? 進行了環(huán)境判斷,代碼較簡單,主要可以學習適配器模式

* 如何防御 CSRF 攻擊。

跨站請求攻擊,簡單地說,是攻擊者通過一些技術(shù)手段欺騙用戶的瀏覽器去訪問一個自己曾經(jīng)認證過的網(wǎng)站并運行一些操作。

文章介紹了一些常用的放于 csrf 的方法,如檢查 Referer 字段、同步表單校驗(表單中帶有服務(wù)器生成的token,提交時要帶上)、雙重 cookie 校驗。

Axios 采用了雙重 cookie 校驗,通過使用者設(shè)置config 的 XSRF-TOKEN 字段生效。


重復(fù)請求去重

https://juejin.cn/post/6844903933735878663

https://www.cnblogs.com/small-coder/p/9133375.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容