axios和ajax的区别
本质
axios:
Axios是基于Promise的HTTP库,可以用在浏览器中,也可以用在node.js中。axios通过Promise实现对ajax的一种封装,就像jQuery实现ajax封装一样
功能特性:
- 从浏览器中创建XMLHttpRequest
- 从node.js中创建http请求
- 支持Promise API
- 支持拦截请求和响应
- 转换请求和响应数据
- 取消请求
- 自动转换JSON数据
- 客户端支持防止XSRF攻击
ajax
Ajax应用的主要特点是使用脚本操纵HTTP和Web服务器进行数据交换,不会导致页面重载。ajax实现了网页的局部数据刷新。
简单来说,ajax技术实现了网页的局部数据刷新,axios实现了对ajax的封装。
axios的使用
把请求对象挂载到vue的原型上 Vue.prototype
在组件中通过this.$http使用
- 在main.js中
//导入axios
import axios from 'axios'
//将axios挂载到Vue的原型上
Vue.prototype.$http = axios
优点:使用方便
缺点:不利于维护
axios封装
把每一个请求模块封装成独立的函数,需要的时候加载调用,利于接口的管理和维护
- 在utils文件创建http.js文件
//导入axios
import axios from 'axios'
//创建实例
let instance = axios.create({
baseURL:'', //基地址
timeout:3000 //响应时长
})
//请求拦截
instance.interceptors.request.use()
//响应拦截
instance.interceptors.response.use()
export default instance
- 在src下新建api文件夹,在api下新建一个js文件
// 引入axios实例
import http from '../utils/http'
export function login(data){
return http({
url:'', //请求地址
method:'POST', //请求方法
data //参数
})
}
- 使用 在vue组件中
//导入封装的axios
import {login} from './api/user'
async created(){
//调用login方法
let res = await login()
}
http和https的区别
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
- http端口号是80,https端口号是443
- http的连接很简单,是无状态的,https协议是由SSL和HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
GET请求和POST请求的区别?
1.get请求一般用来请求获取数据
post请求一般作为发送数据到后台,传递数据,创建数据
2、get请求也可以传参到后台,但是传递的参数则显示在地址栏,安全性低,且参数的长度也有限制(2048字符)
post请求则是将传递的参数放在request body中,不会在地址栏显示,安全性比get请求高,参数没有长度限制
3、get请求刷新浏览器或者回退没有影响
post请求则会重新请求一遍
4、get请求可以被缓存,也会保留在浏览器的历史记录中
post请求不会被缓存,不会保留在浏览器的历史记录中
5、get请求通常是通过url地址请求 post常见的则是form表单请求