http get请求和post请求的区别:
get请求是发送一个数据包,将请求(header和data)一次性发到服务器,返回200
post请求发送两个数据包,先发送请求Header,返回100 continue,再发送data,返回200
注意:
get请求和post请求看似差异很大,其实并没有本质区别,都使用TCP协议传输。
get请求将参数放在URL中,post请求将参数放在body里。但这只是http的约定,并不是规范,我们可以将get参数放在body中,也可以将post参数放在URL里
get请求收不到body参数,不是http的限制,一般是浏览器或者服务器的限制。
get请求和post请求在使用不同的注解接收参数时的情况:
1.@PathVariable
get请求和post请求都可以正确地接收到参数
2.@RequestParam
当用param的方式传参时(拼在URL后面),get和post都可以接收到到参数
post请求用body传参时,Content-Type设置成application/x-www-form-urlencoded格式,可以接收到参数
3.@RequestBody
get请求不建议也不支持用body传参
post请求将Content-Type为application/json,用json格式字符串传参,可以接收并自动映射为对象。
注意:一个@RequestParam注解只能接收一个参数,如果有多个参数,最好封装成参数对象,去掉@RequestParam注解,如下图:


网友评论