get请求和post请求 理解
1.定义
1、get 和 post请求是http协议中的两种请求方式。
2、get一般用来获取服务器的信息的,post一般是用来更新信息
2.浏览器-get请求和post请求区别
GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。
1、最直观的就是语义上的区别,get请求一般用来请求获取数据;
post请求一般作为发送数据到后台,传递数据,创建数据;
2、get请求也可以传参到后台,但是传递的参数则显示在地址栏,安全性低,且参数的长度也有限制(2048字符);
post请求则是将传递的参数放在request body中,不会在地址栏显示,安全性比get请求高,参数没有长度限制;
3、get请求刷新浏览器或者回退没有影响;
post请求则会重新请求一遍;
4、get请求可以被缓存,也会保留在浏览器的历史记录中;
post请求不会被缓存,也不好保留在浏览器的历史记录中;
5、get请求通常是通过url地址请求;
post常见的则是form表单请求;;
6、get请求会被浏览器主动cache;
而post不会,除非手动设置;
7、对参数的数据类型,get只接受ASCII字符,而post没有限制;
8、get比post更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
3. 浏览器-什么时候用post请求,什么时候用get请求
POST方法:
- 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
- 要传送的数据不是采用7位的ASCII编码。
- 传输数据过多
get方法:
- 请求是为了查找资源。
- 请求结果无持续性的副作用。
- 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。
4. 接口中-什么时候用post请求,什么时候用get请求
这里指微服务间的调用,http协议在微服务中使用比较普遍。
当用HTTP实现接口发送请求时,就没有浏览器中那么多限制了,只要是符合HTTP格式的就可以发。
太自由会造成另一种麻烦,开发人员会不断讨论确定参数通过哪种方式传递,因此就会有一定的接口规范。如REST等。
我工作中的规范如下:
- get请求一般用来请求获取数据;
- post请求一般作为发送数据到后台,传递数据,创建数据;