get请求和post请求


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注解,如下图:

多个@RequestParam注解


去掉@RequestParam注解,用对象接收多个参数

你可能感兴趣的:(get请求和post请求)