GET和POST:
GET方法:
GET是获取的意思,顾名思义就是获取信息。
GET向指定的资源请求数据,请求的数据会附在URL之后,就是把数据放置在请求行(request line)中),以?分割URL和传输数据,多个参数用&连接;
GET 是http请求默认的请求方式
POST方法:
POST是通过HTTP post机制,将请求到的数据封装到http消息包体中。
POST是邮件的意思,顾名思义就像一封信一样将参数放在信封里面传输。它用于修改服务器上的数据,一般这些数据是应该保密的,就像信件一样,信的内容只能收信的人看见。例入当用户输入账号和密码登录时账号和密码作为参数通过HTTP请求传输到服务器,这时候肯定不能用GET方法将账号密码直接显示再URL上,这时候就应该用POST方法保证数据的保密性。
区别:
1、传送方式:GET通过地址栏传输,POST通过报文传输。
2、传送长度:GET参数有长度限制(受限于url长度),而post无限制
3、GET和POST还有一个重大区别,
简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包
长的说:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服 务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
4、POST和GET都是向服务器提交数据,并且都会从服务器获取数据。
5、GET一般是用来获取数据,POST提交数据
6、GET在浏览器回退时是无害的,而POST会再次提交请求。
7、GET请求会被浏览器主动cache,而POST不会,除非手动设置。
8、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
9、GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
10、GET只允许ASCII字符,POST没有限制
GET和POST方法的封装
import axios from "axios";
const instance = axios.create({
timeout:5000,//超时时间
baseURL:"xxxxxxxxx"//表示web服务器根地址
});
export function get(url,config){
return instance.get(url,config);
};
export function post(url,data,config){
return instance.post(url,data,config);
}