GET/ POST 区别详解

1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。

2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。

3、post提交数据是隐式的,Post的所有操作对用户来说都是不可见的;get是通过在url里面传递的(可以看一下你浏览器的地址栏),用来传递一些不需要保密的数据。Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。

4、Get传输的数据量小,用get时,传输数据的大小有限制 (注意不是参数的个数有限制),为2K;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。

5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。默认是用ISO-8859-1编码

6、Get是Form的默认方法。

7、还有一点需要注意哦,通过get方式来获取参数用的方法和通过post方式有些区别:

 
 
post:request.getParameter("");
get: request.QueryString("");

<注:用get方式提交时,我也用request.getParameter()来获得传递的参数,尽管已经设置request.setCharacterEncoding(“utf-8”),但是得到的中文参数一直是乱码。但我没有用后种方式获得参数,我是直接改为post,中文显示就正常了。>


猜你喜欢

转载自blog.csdn.net/aa8866a/article/details/79707403