ajax/axios/fetch区别及webSocket通信原理

ajax

  • 不符合现在前端MVVM的浪潮
  • 基于原⽣的XHR开发,XHR本⾝的架构不清晰
  • jQuery整个项⽬太⼤,单纯使⽤ajax却要引⼊整个jQuery

axios

  • 从 node.js 创建 http 请求
  • ⽀持 Promise API
  • 客户端⽀持防⽌CSRF
  • 提供了⼀些并发请求的接⼝

fetch

  • 更加底层,提供的API丰富(request, response)
  • 脱离了XHR,是ES规范⾥新的实现⽅式
  • fetch只对⽹络请求报错,对400,500都当做成功的请求,需要封装去处理
  • fetch默认不会带cookie,需要添加配置项
  • fetch没有办法原⽣监测请求的进度,⽽XHR可以

webSocket通信原理

  • 客户端会先发送⼀个HTTP请求,包含⼀个Upgrade请求头来告诉服务端要升级为 WebSocket协议
  • 服务器就会返回101状态码并切换为WebSocket协议建⽴全双⼯连接,后续信息将会通过这个协议进⾏传输

有⼏个头信息需要注意⼀下:

  • Sec-WebSocket-Key:客户端随机⽣成的⼀个base64编码
  • Sec-WebSocket-Accept:服务端经过算法处理后回传给客户端
  • Connection和Upgrade字段告诉服务器,客户端发起的是WebSocket协议请求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/592196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react+umi+antd项目搭建配置

官方文档链接:UmiJS官方文档React官方文档Ant Design官方文档 一、项目搭建 对于react umi项目搭建,umi官方文档已经写的很清晰了,具体请查看上面的umi官方文档链接。这里我不再详细说明,着重说明一些需要注意的地方。 1. 首先…

Python基础知识:整理2 列表的相关操作

1. 查找某元素在列表中的下标索引 2. 在具体的位置插入一个元素 3. 在列表的尾部追加元素 4. 追加元素方式2 5. 删除元素 6. 删除元素方式2 7. 删除元素方式3 8. 清空列表 9. 统计某个元素在列表中出现的次数 10. 统计列表中所有元素的数量 11. 定义空列表

vim配置php开发环境

vim是很多程序员喜爱的代码编辑器,对于phper来说,我们需要配置和添加一些插件来方便我们进行开发。下面是一些常用的配置。 安装Vundle Vundle是Vim的插件管理器,它使得安装和管理插件变得更加方便。可以使用以下命令安装Vundle&#xff1a…

计算机网络实验(六):三层交换机实现VLAN间路由

一、实验名称:三层交换机实现VLAN间路由 二、实验原理 2.1. VLAN基本配置 在交换网络中,为了实现对物理网络的逻辑划分,引入了VLAN(虚拟局域网)的概念。VLAN通过将不同的设备划分到不同的虚拟网络中,实现了逻辑隔离。基本配置包括在交换机上创建VLAN、将端口划分到相应…

初识Java并发,一问读懂Java并发知识文集(3)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

【算法专题】二叉树中的深搜(DFS)

二叉树中的深搜 深搜1. 计算布尔二叉树的值2. 求根节点到叶节点数字之和3. 二叉树剪枝4. 验证二叉搜索树5. 二叉搜索树中第K小的元素6. 二叉树的所有路径 深搜 深度优先遍历(DFS,全称为 Depth First Traversal),是我们树或者图这…

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 开发板详情与规格

本文主要参考: BQ3588C_开发板详情-开源鸿蒙技术交流-Bearkey-开源社区 BQ3588C_开发板规格-开源鸿蒙技术交流-Bearkey-开源社区 厦门贝启科技有限公司-Bearkey-官网 1. 开发板详情 RK3588 核心板是一款由贝启科技自主研发的基于瑞芯微 RK3588 AI 芯片的智能核心…

word 常用功能记录

word手册 多行文字对齐标题调整文字间距打钩方框插入三线表插入参考文献自动生成目录 多行文字对齐 标题调整文字间距 打钩方框 插入三线表 插入一个最基本的表格把整个表格设置为无框线设置上框线【实线1.5磅】设置下框线【实线1.5磅】选中第一行,设置下框线【实线…

SpringBoot整合Elasticsearch报错

本文来记录一下SpringBoot整合Elasticsearch报错 文章目录 报错如下报错原因es7.15.2版本下载 报错如下 2024-01-02 15:09:10.349 ERROR 134936 --- [nio-8088-exec-6] o.a.c.c.C.[.[.[/]. [dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in c…

NGUI基础-图集制作(保姆级教程)

目录 图集是什么 如何打开图集制作工具 制作步骤 图集的三个关键配置 相关参数介绍 Atlas Material Texture Padding Tim Alpha PMA shader Unity Packer TrueColor Auto-upgrade Force Square Pre-processor 图集是什么 Unity图集(Sprite Atlas&…

Rust基础语法判断语句读取命令行里边的数字使用match和if进行判断

use std::str::FromStr; use std::env;fn main() {// 新建一个let mut numbers Vec::new();for arg in env::args().skip(1){numbers.push(u64::from_str(&arg).expect("error parsing argument"));}if numbers.len() 0 || numbers.len() > 1 {eprint!(&quo…

IDEA2023 最新版详细图文安装教程(安装+运行测试+汉化+背景图设置)

IDEA2023 最新版详细图文安装教程 名人说:工欲善其事,必先利其器。——《论语》 作者:Code_流苏(CSDN) o(‐^▽^‐)o很高兴你打开了这篇博客,跟着教程去一步步尝试安装吧。 目录 IDEA2023 最新版详细图文安…

skynet 配置中lua服务创建流程

众所周知,skynet必须配置启动脚本,比如说如下配置 thread8 loggernil harbor0 start"main" lua_path"./skynet/lualib/?.lua;./skynet/lualib/?/init.lua;" luaservice"./skynet/service/?.lua;./app/?.lua;" lualoa…

linux挂载未分配的磁盘空间

目录 1.先查看是否有未分配的磁盘空间 2.分区 3.格式化新分区(这里以ext4为例) 4.创建一个目录用于挂载 5.将新分区挂载到目录 6.查看新的磁盘分区情况 7.配置系统在启动时自动挂载 1.先查看是否有未分配的磁盘空间 lsblk 可以看到/dev/vdb 是…

力扣_day1

两数之和 hash表的时间复杂度为什么是O(1)? hash表是基于数组链表的实现的。数组在内存中是一块连续的空间,只要知道查找数据的下标就可快速定位到数据的内存地址,即数组查找数据的时间复杂度为O(1)。 能用一次循环解决问题就用一次循环。…

面试经典150题(59-61)

leetcode 150道题 计划花两个月时候刷完,今天(第二十九天)完成了3道(59-61)150: 59.(146. LRU 缓存)题目描述: 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUC…

EBU7140 Security and Authentication(三)密钥管理;IP 层安全

B3 密钥管理 密钥分类: 按时长: short term:短期密钥,用于一次加密。long term:长期密钥,用于加密或者授权。 按服务类型: Authentication keys:公钥长期,私钥短期…

算法训练第五十六天|583. 两个字符串的删除操作、72. 编辑距离

583. 两个字符串的删除操作: 题目链接 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 示例 : 输入: word1 "sea", word2 "eat" 输出: 2 解释: 第一…

python区别与C++的总结

数据类型 Python: 动态类型系统:类型在运行时自动检测,无需显式声明。内建类型:包括 int, float, str, bool, list, tuple, dict, set等。一切皆对象:所有数据类型都是对象,包括函数和类。没有原始数组:P…

Chocolatey

Chocolatey Software | PHP (Hypertext Preprocessor) 8.3.1 msi安装包https://github.com/chocolatey/choco/releases/download/2.2.2/chocolatey-2.2.2.0.msi 设置/安装 巧克力味Chocolatey CLI (choco)设置/安装 要求 受支持的 Windows 版本Windows …