一、Get是从服务器上获取数据,Post则是向服务器传送数据;
二、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL地址的后面,并且两者用“?”连接,而各个变量之间使用“&”连接。Post是将表单中的数据放在form的数据体中(或者说把内容放在了http消息体里),按照变量和值相对应的方式,传递到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()来获取;