1.前端传参方式:
1.url传参:
数据参数直接写在url地址中,一般使用get请求。
使用params传输的就是url类型的参数;
(params 参数通常用于发送 URL 查询参数。
这些参数会附加到请求的 URL 中,
并以 key=value 的形式出现,用 & 符号分隔多个参数。
就拼接在url 问号?后面的东西
后端接收用@RequestParam或者实体类接收)
优点:一个TCP传输就可以将参数传递给服务器,速度快。
缺点:参数直接暴露在浏览器中,不安全。
2.请求体body'中
使用data传输的数据会被放到请求体中;
(data 参数通常用于发送表单数据,如提交 HTML 表单时。
数据将以表单形式编码,并发送到服务器。
可以发送键值对、文件上传等数据。
通常发送的数据是字典或类似的数据结构。
在header中’Content-Type’ 字段’application/x-www-form-urlencoded’
后端使用@RequestBody或者实体类接收)
使用请求体传参有多种content-type可以选择,例如:JSON、form-data、
x-www-form-urlencoded、xml
优点:相对安全,没有大小限制。
缺点:需要两个TCP传输,第一次传输head,第二次传输body。
所以基本是get请求用params传参,post用data传参
2.Restful
下常用的几种http请求方式为get、post、put、patch、delete
- get 获取资源
- post 创建资源
- put 创建或更新资源(有则更新,无则创建)
例如 PUT /items/1 的意思是替换 /items/1 ,存在则替换,不存在则创建。
所以,PUT方法一般会用来更新一个已知资源。 - patch 部分更新资源
- delete 删除资源
3.conten-type
conten-type不同数据格式及使用注意事项:
1.application/json (axios默认post格式)
这个大家很熟悉,就是json格式的数据,在网络流中被编码成json格式的字符串,如:{“key1”:“value1”,“key2”:“value2”}
2.application/x-www-form-urlencoded
浏览器的原生 form 表单格式,默认以 application/x-www-form-urlencoded 方式提交数据。
提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码,最终网络流中被编码成类似于这种格式的字符串:title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3
3.multipart/form-data
也是浏览器的原生 form 表单格式,与上面不同的是,这个既可以传键值对,也可以用来上传文件。我们使用表单上传文件时,必须让 form 的 enctyped 等于这个值。
总结:
- url链接能看到用params。
- Content-Type 为 application/x-www-form-urlencoded或form-data 用data。
- Content-Type 为 application/json,用json。