hero

逐行剖析 axios 源码

十七个章节,逐个击破

开始学习 →

# 章节目录

第一章 准备工作

本章节是针对阅读 axios 源码的一些说明

第二章 axios 对象创建过程

本章节主要学习 axios 对象的创建过程,同时通过编写一段简单的代码来实现 axios 对象的创建过程,加深理解。通过本章节的学习,你会了解到这个 axios 对象到底是个什么东西来的,它是怎么被创建出来的,以及axios对象和axios.create创建出来的对象有什么区别

第三章 Axios 构造函数分析

本章节主要分析 Axios 构造函数的组成部分,有哪些属性和方法。通过本章节的学习,你会了解到,我们平常使用的一些属性和方法到底是怎么来的

第四章 buildURL 函数分析

本章节主要是分析 buildURL 函数内部的实现。通过本章节的学习,你会掌握到如何构建出一个完整的带有查询参数的 url 地址,以及一些其他的知识点和设计技巧

第五章 request 函数分析

本章节主要是分析 request 函数的执行流程。通过本章节学习,你会了解到我们平常开发中使用的axios函数是怎么执行的

第六章 请求/响应拦截器的实现

本章节主要是分析 请求/响应拦截器 的实现。通过本章节的学习,你会了解到 promise 是如何进行链式调用的,请求拦截器、请求处理函数、响应拦截器的执行调用顺序,以及怎么使用 promise 将请求拦截器、请求处理函数、响应拦截器串联起来,形成一个完整的调用链。还有一些设计技巧。同时我们还会通过另外一种方式来教大家怎么去实现一个 请求/响应拦截器

第七章 dispatchRequest 函数分析

本章节主要是分析 dispatchRequest 函数内部的执行流程。通过本章节的学习,你会了解到 headers 字段的合并策略,adapter 适配器是如何选择不同的请求处理函数去发送请求,以及请求完成之后的处理逻辑

第八章 转换请求/响应数据

本章节主要是分析 请求/响应数据 是如何进行转换的。通过本章的学习,你会了解到请求数据和响应数据的转换流程,,以及原生浏览器的XMLHttpRequest和 node 的http模块支持发送那些数据类型的数据

第九章 xhr 请求处理函数

本章节主要是分析 xhr 请求处理函数的实现。通过本章节的学习,你会了解到原生浏览器XMLHttpRequest是如何发送请求的,以及初步接触 auth 身份验证、客户端防御 XSRF、取消请求等功能的实现

第十章 auth 身份验证

本章节主要是学习 auth 身份验证的流程和原理。通过本章节的学习,你会了解到HTTP Basic auth身份验证的原理和功能

第十一章 客户端防御 XSRF

本章节主要是学习 客户端防御 XSRF 。通过本章节的学习,你会了解到 XSRF(CSRF)具体是个什么东西,以及它的实现原理和过程,以及防御手段

第十二章 isURLSameOrigin 函数分析

本章节主要是分析 isURLSameOrigin 函数内部的实现。通过本章节的学习,你会了解到另外一种判断是否为同源地址的方法,打开你对新知识的大门

第十三章 取消请求

本章节主要是学习 取消请求 的实现原理,同时还会编译一段简单的代码来实现取消请求的功能,加深理解。通过本章节的学习,你会了解到如何取消一个请求,取消请求之后,内部的状态是如何发生变化的,以及如何去监听外部取消了请求。同时我们还会通过自己去实现一个简单代码来加深对取消请求实现原理的理解。

第十四章 http 请求处理函数

本章节主要是分析 http 请求处理函数的实现。通过本章节的学习,你会了解到 node 是如何通过 http 发送一个请求的

第十五章 createError 函数分析

本章节主要是分析 createError 函数的实现。通过本章节的学习,你会了解到 axios 的错误对象是怎么来的,以及一些额外的扩展知识

第十六章 请求配置项

本章节主要是分析 axios 提供了那些默认的请求配置项,以及完整的请求配置项有那些。通过本章节的学习,你会了解到请求配置项那些是通用的字段,那些只能用在 node 环境或者 web 端浏览器环境

第十七章 总结

本章节主要是对前面章节学习的总结,以及阅读感想和收获