首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【面试题】HTTP知识点整理(附答案)

    一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟 缓存处理 http1.0 主要使用header的Exprires, If-Modified-Since来做为缓存判断的标准...,它允许只请求资源的某个部分,即返回码是206(Partial Content) Host头处理 HTTP/1.0认为每台服务器都有唯一的IP地址,但随着虚拟主机技术的发展,多个主机共享一个IP地址愈发普遍...把 HTTP/1.1 每个请求都当作一个流,那么多个请求变成多个流,请求响应数据分成多个帧,不同流的帧交错地发送给对方,这就是 HTTP/2 的多路复用。...HTTP2采用多路复用是指,同一个域名下,开启一个TCP的connection,每个请求以stream的方式传输,每个stream有唯一的标识,connection一旦建立,后续的请求可以复用这个connection...(幂等表示执行相同的操作,结果也是相同的) TCP: GET请求会把浏览器会把http header和data一次性发出去,而POST会分成两个TCP数据包,首先发Header部分,如果服务器响应100

    1.4K30

    完整的Axios封装-单独API管理层、参数序列化、取消重复请求、Loading、状态码...

    三、最后我们页面具体使用, App.vue 文件随便加一个按钮,点击触发请求。...POST请求参数序列化 POST请求的 Content-Type 常见的有以下3种形式: Content-Type: application/json Content-Type: application...如果相同接口再次被触发,则直接取消正在请求的接口并从队列删除,再重新发起请求并储存进队列;如果接口返回结果,就从队列删除,以此过程来操作。...添加怎么一个功能我们需要考虑怎么三件事: 同一时间内发起多个请求,我们只需要展示一个Loading层即可,不需要产生多个造成重复展示。...同一时间内发起多个请求展示的Loading层以最后一个请求响应而关闭销毁。 此功能依旧要进行可配置化处理。

    3.9K21

    axios详解以及完整封装方法

    它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js)。...cancel(); 注意: 可以使用同一个 cancel token 或 signal 取消多个请求 五、axios封装 先设计我们想要这个通用请求能达到什么样的效果: 优化配置,设置默认配置项(responseType...方法,精简 post 请求方式 封装 Get 方法,精简 get 请求方式 请求成功,配置业务状态码 全局的loading配置 VUEaxios的封装 vue项目中,和后台交互获取数据这块,我们通常使用的是...比如,有些请求是需要用户登录之后才能访问的,或者post请求的时候,我们需要序列化我们提交的数据。这时候,我们可以请求被发送之前进行一个拦截,从而进行我们想要的操作。...,所以每次的请求头中携带token // 后台根据携带的token判断用户的登录情况,并返回给我们对应的状态码 // 而后我们可以响应拦截器,根据状态码进行一些统一的操作

    6K12

    axios笔记(一) 简单入门

    API 分类 3.1 REST API(restful) RESTful 接口设计规范 发送请求进行 CRUD 哪个操作请求方式来决定 同一请求路径可以进行多个操作 请求方式会用到 GET / POST.../ PUT / DELETE 等 3.2 非 REST API(restless) 请求方式不决定请求的 CRUD 操作(甚至可以用 GET 请求进行删除操作) 一个请求路径只对应一个操作 请求方式一般只有...Resources 中看到所有的接口 点击对应接口,可以获取对应数据 支持携带参数 params 参数 query 参数 两种参数区别:query 参数是从所有的数据筛选,所以最后是数组的形式...通过 XMLHttpRequest 可以不刷新页面的情况下请求特定 URL,获取数据。这允许网页不影响用户操作的情况下,更新页面的局部内容。...ajax 引擎帮忙发送) 浏览器端发送请求,只有 XHR 或 fetch 发出的才是 ajax 请求,其他的都不是 ajax 请求 浏览器端接收到响应(一般请求浏览器会自动更新页面,而 ajax

    1.6K20

    ahooks 是怎么解决用户多次提交问题?

    缺点 虽然实用,但缺点很明显,需要给每一个需要添加竞态锁的请求异步函数都手动加一遍。那有没有比较通用和方便的方法呢? 答案是可以通过 axios 自动取消重复请求。...可以使用如下: const CancelToken = axios.CancelToken; const source = CancelToken.source(); axios.post('/user...这一点很重要,而且可能跟具体的业务场景有关,比如有一种请求,输入框模糊搜索,用户高频输入关键字,一次性发出多个请求,可能先发出请求,最后才响应,导致实际搜索结果与预期不符。...这种其实就只需要根据 URL 和请求方法判定其为重复请求,然后取消之前的请求可以了。 这里认为,如果有需要的话,可以暴露一个 API 给开发者进行自定义重复的规则。...通过 axios 拦截器以及其 CancelToken 功能,我们能够拦截器自动将已发的请求取消,当然假如有一些接口就是需要重复发送请求可以考虑加一下白名单功能,让请求不进行取消。

    1.8K10

    【面试Vue全家桶】vue前端交互模式-es7的​语法结构?asyncawait

    ,老板问了,你会前后端交互模式?...(){// 页面结构加载完成}) JavaScript,异步情况,第一种为定时任务,第二种为ajax,第三种事件函数。...JavaScript的世界里,所有的代码都是单线程执行的。因为这个缺点,所以会导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行的,异步执行可以用回到函数实现。...fetch请求参数 method(string) http请求方法,默认为GET,可以使用POST,PUT,DELETE body(string) http的请求参数 headers(object) http...(res.data.name);}); axios拦截器 axios.interceptors.request.use(function(config){//拿过去发出之前进行一些信息设置returnconfig

    1.5K10

    JavaScript | 笔记

    -- 注释节点值 --> 参考: 整个body中找到所有的注释(通过JS来操作节点寻找)-CSDN社区 // 从 body 开始向内查找 var bodyElement = document.getElementsByTagName...中使用replaceWith将元素替换为DOMstring或多个元素 - 爱学习网 Element.replaceWith() - Web API 接口参考 | MDN Element.replaceWith...replaceWith将任意一个子跨度与多个元素和文本节点交换 Element.replaceWith()的签名接受数量可变的Node或DOMString参数。。。...= process.env.VUE_APP_API; // axios 请求拦截 - 发送请求之前做某件事 axios.interceptors.request.use( function(request...例,www.qq.com下种下了sessionStorage,wx.qq.com下是,无法访问的; 新开的tab下,或者关闭本TAB再打开后(也是www.qq.com),也是无法访问到之前种的sessionStorage

    1.5K20

    axios(封装使用、拦截特定请求、判断所有请求加载完毕)

    而是推荐使用 axios,本项目也是使用 axios 功能特性 浏览器中发送 XMLHttpRequests 请求 node.js 中发送 http请求 支持 Promise API 拦截请求和响应...) 请求配置:只有url是必需的,如果未指定方法,请求将默认为GET axios 拦截特定请求 业务上经常出现这个问题,需要拦截某些特定请求该特定请求,页面采取或不采取什么变化 研究 axios 的...就是请求的接口的地址,那么 “/” 最后的 getClassify 就是该请求的方法,就可以通过取出该字符串来判断某些特定请求,从而做出怎样的变化 axios.interceptors.request.use...let reqNum = 0 axios.interceptors.request.use(function (config) { // 在请求发出之前进行一些操作,每次发出请求就 reqNum+...$emit('showloading') } }) axiospost 请求 相关问题 如果遇到 post 请求跨域问题, webpack 配置文件可以设置 proxyTable 处理跨域问题

    5.3K40

    什么样的vue面试题答案才是面试官满意的

    Vue data 某一个属性的值发生改变后,视图会立即同步执行重新渲染?...还有一些额外任务要做,比如需要用 Vue 模板编译器编译template,从而得到render函数需要对 的CSS做后处理(post-process),该操作css-loader...element ASTs(解析器)第二步是对 AST 进行静态节点标记,主要用来做虚拟DOM的渲染优化(优化器)第三步是 使用 element ASTs 生成 render 函数代码字符串(代码生成器)v-on可以监听多个方法...;charset=utf-8' // 开发,一般还需要单点登录或者其他功能的通用请求头,可以一并配置进来 }, post: { 'Content-Type...api统一管理起来,以后维护修改只需要在api.js文件操作即可请求拦截器请求拦截器可以每个请求里加上token,做了统一处理后维护起来也方便// 请求拦截器axios.interceptors.request.use

    2.1K30

    Fetch还是Axios——哪个更适合HTTP请求

    前端开发最重要的部分之一是通过发出 HTTP 请求与后端进行通信,我们有几种方法可以异步地 Javascript 中进行 API 调用。...Axios 概述和语法 Axios 是一个 Javascript 库,用于从 Node.js 或 XMLHttpRequests 或浏览器发出 HTTP 请求。... axios ,它是自动完成的,所以我们只需在请求传递数据或从响应获取数据。它是自动字符串化的,所以不需要其他操作。 让我们看看如何从 fetch() 和 axios 获取数据。...已经承诺对象检查了代码的状态,如果响应有状态 ok,那么可以处理并使用 .json() 方法,但如果没有,必须在 .then() 里面返回错误。...第一种情况下,创建了一个 console.log,告知发送请求的情况,响应拦截,我们可以对响应做任何操作,然后返回。

    4.9K20

    VueAxios的封装和API接口的管理

    // http.js引入axios import axios from 'axios'; // 引入axios import QS from 'qs'; // 引入qs模块,用来序列化post类型的数据...axios.defaults.timeout = 10000; post请求头的设置 post请求的时候,我们需要加上一个请求头,所以可以在这里进行一个默认的设置,即设置post请求头为application...比如,有些请求是需要用户登录之后才能访问的,或者post请求的时候,我们需要序列化我们提交的数据。这时候,我们可以请求被发送之前进行一个拦截,从而进行我们想要的操作。...然后,每次请求接口的时候,都会在请求的header携带token,后台人员就可以根据你携带的token来判断你的登录是否过期,如果没有携带,则说明没有登录过。...,可以更灵活的使用axios,比如你可以post请求时提交的数据进行一个qs序列化的处理等。

    3.2K80

    axios如何跨域请求_前端跨域请求

    大家好,又见面了,是你们的朋友全栈君。...axios 跨域请求详情 写这篇文章的背景是因为之前遇到的,跨域的情况下通过 axios 发起的 get 请求正常,post 请求会在正式请求发送之前先发送一个 opstions 请求,而后端接口没有兼容...请求方法为 GET、 HEAD、 POST 的一种 2....json 格式,故进行 POST 请求会先发出预检请求,若服务端对预检请求的响应为不支持,则请求终止。...(url, data) // 处理数据 return res.data } 通过以上方式即可将 POST 预检请求转换为简单请求,其好处不言而喻,对于多个 POST 请求而言,可以减少一半的请求数量,且一些服务端比较不能改动的场景更为适用

    2.9K40

    vueAxios的封装和API接口的管理

    // http.js引入axios import axios from 'axios'; // 引入axios import QS from 'qs'; // 引入qs模块,用来序列化post类型的数据...axios.defaults.timeout = 10000; post请求头的设置 post请求的时候,我们需要加上一个请求头,所以可以在这里进行一个默认的设置,即设置post请求头为application...比如,有些请求是需要用户登录之后才能访问的,或者post请求的时候,我们需要序列化我们提交的数据。这时候,我们可以请求被发送之前进行一个拦截,从而进行我们想要的操作。...然后,每次请求接口的时候,都会在请求的header携带token,后台人员就可以根据你携带的token来判断你的登录是否过期,如果没有携带,则说明没有登录过。...,可以更灵活的使用axios,比如你可以post请求时提交的数据进行一个qs序列化的处理等。

    3.6K11

    前端接口防止重复请求实现方案

    听到这个需求,第一反应就是,防止薅羊毛最保险的方案不还是服务端加限制?前端加限制能够拦截的毕竟有限。可老板就是执意要前端搞一下子,行吧,搞就搞吧,you happy jiu ok。...下面就来总结一下这次的防重复请求的实现方案: 方案一 这个方案是最容易想到也是最朴实无华的一个方案:通过使用axios拦截器,在请求拦截器开启全屏Loading,然后响应拦截器中将Loading关闭...比如,有这样一个接口处理: image.png 那么,当我们触发多次请求时: image.png 这里连续点击了4次按钮,可以看到,的确是只有一个请求发送出去,可是因为代码逻辑,我们对错误进行了一些处理...可是倘若这两个请求是来自同一个页面呢? 比如,一个页面同时加载两个组件,而这两个组件都需要调用某个接口时: image.png 那么此时,后调接口的组件就无法拿到正确数据了。啊这,真是难顶!...我们打印一下请求的config: image.png 可以看到,请求体data的数据是FormData类型,而我们在生成请求key的时候,是通过JSON.stringify方法进行操作的,而对于FormData

    20710
    领券