`

Get与Post的区别

 
阅读更多

 

区别:

一、Get是从服务器上获取数据,Post则是向服务器传送数据;

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

所以从上第二点也可以得到另外两个结论:

1、Get传送的数据量较小,不能大于2KB,这主要是因为受URL长度限制。Post传送的数据量较大,所以在上传文件只能使用Post(注意在文件上传时还要加上enctype="multipart/form-data"作为上传文件的标识)。一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB;

2、Get安全性非常低(因为用户可以通过URL看到),Post安全性较高(其所有操作对用户来说都是不可见的)。但是执行效率却比Post方法好;

a、如果是包含机密信息的话,建议用Post数据提交方式;

b、当数据处理不改变数据模型的状态则推荐使用Get方式,例如在做数据查询。而操作改变了数据模型的状态时,则建议使用Post方式,例如数据添加、修改或删除,送电子邮件等;

三、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集,所以说在出现一些乱码时有时候可以将Get请求换为Post请求;

四、Get是Form的默认方法;

五、Get方式提交来的数据在服务器端用Request.QueryString()来获取,用Post方式提交的数据用Request.Form()来获取(这一点不是很明确 );

这里既然说到了Get和Post,那么就多说一下Servelt中的doGet和doPost。

在servlet中默认情况下,无论你是get还是post 提交过来 都会经过service()方法来处理,然后转向到doGet或是doPost方法

1、如果Servlet继承自HttpServlet,就必须重写里面的这两个方法doGet()和doPost();

2、如果多个请求返回相同的结果,则可以使用doGet方法,GET请求的例子:http://localhost/yourApp?firstName=Adam&middleName=Christopher。 当改变服务器状态时应当使用doPost方法。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics