Request.QueryString,Request.Form,Request.Params的区别

在搞清楚这个问题之前,我们需要先明白:

Get  Post 的区别

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

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

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

4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。

5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。

6、Get是Form的默认方法。

==============================================

Request.Form:获取以POST方式提交的数据(接收Form提交来的数据);

Request.QueryString获取地址栏参数(以GET方式提交的数据)

Request包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都按先后顺序搜寻一遍

而且有时候也会得到不同的结果。如果你仅仅是需要Form中的一个数据,但是你使用了Request而不是Request.Form,那么程序将在QueryString、ServerVariable中也搜寻一遍。如果正好你的QueryString或者ServerVariable里面也有同名的项,你得到的就不是你原本想要的值了。

Request.Params是所有post和get传过来的值的集合,request.params其实是一个集合,它依次包括request.QueryString、request.Form、request.cookies和request.ServerVariable。

Request.Params   获取Request.QueryString和Request.Form等项的集合。  
 
Request.QueryString:接受URL等查询字符串的集合。   
Request.Form:是用来接受窗体表单等变量。
Request.QueryString和Request.Form以前都是专门针对asp页面的,当asp页面的form的method属性为get
时,使用querystring,为post时,使用form.  


 

原文地址:https://www.cnblogs.com/wukong0214/p/2921066.html