axios核心技术---1.HTTP相关
分类:
Vue
HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)。它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的接受方发起的。一个完整的Web文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。
1.HTTP请求交互的基本过程
- 前后应用从浏览器端向服务器发送HTTP请求(请求报文)
- 后台服务器接收到请求后,调度服务器应用处理请求,向浏览器返回HTTP响应(响应报文)
- 浏览器端接收到响应,解析显示响应体/调用监视回调
2.HTTP请求报文
- 请求行:method url: GET/url, POST/url
- 多个请求头:
- Host: www.baidu.com
- Cookie: BAIDUID=AD3B0FA706E; BIDUPSID=AD3B0FA706;
- Content-Type: application/x-www-form-urlencoded 或者 application/json
- 请求体(需要配合content-type类型):
- username=tom&pwd=123
- {“username”: “tom”, “pwd”: 123}
3.HTTP响应报文
- 响应状态行:status statusText
- 多个响应头:
- Content-Type: text/html;charset=utf-8
- Set-Cookie: BD_CK_SAM=1;path=/
- 响应体:
- html 文本/json 文本/js/css/图片
4.post请求体参数格式
- Content-Type:application/x-www.form-urlencoded;charset=utf-8
- 用于键值对参数,参数的键值用=连接,参数之间用&连接
- 例如: name=%E5%B0%8F%E6%98%8E&age=12
- Content-Type:application/json;charset=utf-8
- 用于 json 字符串参数
- 例如: {“name”: “%E5%B0%8F%E6%98%8E”, “age”: 12}
- Content-Type: multipart/form-data
- 用于文件上传请求
5.常见的响应状态码
- 200:OK 请求成功。一般用于GET与POST请求
- 201:Created 已创建。成功请求并创建了新的资源
- 401:Unauthhorized 未授权/请求要求用户的身份认证
- 404:Not Found 服务器无法根据客户端的请求找到资源
- 500:Internal Server Error 服务器内部错误,无法完成请求
6.不同类型的请求及其作用
- GET:从服务器端读取数据
- POST:向服务器端添加新数据
- PUT:更新服务器端已经数据
- DELETE:删除服务器端数据
7.API的分类
- REST API:restful
- 发送请求进行CRUD哪个操作由请求方式来决定
- 同一个请求路径可以进行多个操作
- 请求方式会用到GET/POST/PUT/DELETE
- 非 REST API:restless
- 请求方式不决定请求的CRUD操作
- 一个请求路径只对应一个操作
- 一般只有GET/POST
8.使用json-server搭建REST API
(1)json-server是什么?
用来快速搭建 REST API 的工具包
(2)使用json-server
- 全局安装json-server:npm install -g json-server
- 目标根目录下创建数据库json文件:db.json
- 启动服务器执行命令:json-server --watch db.json
参考链接:
【1】https://www.bilibili.com/video/BV1NJ41197u6?p=2
【3】typicode/json-server: Get a full fake REST API with zero coding in less than 30 seconds (seriously)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现