Get与Post请求的区别

GetPost请求的区别

1、参数传递方式

Get:通过Url传递参数,Url与参数之间用?隔开,多个参数之间用&隔开,也是表单的默认提交方式。

 

 

 

Post:所有操作对用户来说都是不可见的,相对于get方式更安全。

 

 

 

2、传送数据量大小不同

Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。

3、信息缓存

Get提交的信息能被缓存,请求保留在浏览器历史记录中;Post提交的数据一般不能被缓存,请求不会保留在浏览器历史记录中。

4、编码方式与乱码处理问题

Get:默认编码编码类型是:application/x-www-form-urlencodedTomcat8之前的版本,默认编码格式是iso-8859-1,从Tomcat8版本之后默认编码改为UTF-8,所以如果是Tomcat8及以上版本就不需要进行转码处理,如果是Tomcat7及之前版本可以使用以下方法进行转码:

String name = request.getParameter("name");

String encodingName=new String(name.getBytes("iso-8859-1"),"utf-8");

Post:支持多种编码类型,application/x-www-form-urlencoded multipart/form-data。可以使用以下方法进行转码:

request.setCharacterEncoding("utf-8");

在这里顺便说一下响应的乱码处理方法,后面我们还会详细讲解:

response.setContentType("text/html;charset=utf-8");

总结:

Get参数会直接显示到URL不安全,Post在请求主体中,比较安全。

Get传送数据量大小有限制,根据浏览器不同限制不同,一般为2KB-6KBPost无限制。

Get缓存数据会直接将参数缓,保留在浏览器历史记录中,不安全。Post缓存时不缓存参数,不保 留在浏览器记录中

Get只能有一个种编码方式,转码的时候使用字符串转字节的方式,Post支持多种编码方式,转码直接使用setCharacterEconding()即可。

由于Get具有缓存功能,一般用来直接获取数据,提高查询速度; Post是发送数据到服务器作存储,适合于增删改操作

posted @ 2020-09-18 16:55  master_hxh  阅读(621)  评论(0编辑  收藏  举报