您的位置:首页 > 编程学习 > ASP.NET > 正文

Request、Request.Form、Request.QueryString的区别

更多 时间:2014-7-10 类别:编程学习 浏览量:1766

Request、Request.Form、Request.QueryString的区别

Request、Request.Form、Request.QueryString的区别

一、Request、Request.Params、Request.Form、Request.QueryString的区别

 

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。

 

例如

  •  
  • C# 代码   复制
  • protected void Page_Load(object sender, EventArgs e)  
    
        {  
    
            string id = Request.QueryString["name"];  
    
            string website = Request.QueryString["website"];  
    
            Response.Write(id + "< br>" + website);  
    
     
    
          Response.Write("你使用的是" + Request.RequestType + "方式传送数据");  
    
     
    
        }  
    
    
    
    //第2种,接收用post 方法传输的数据的写法:
    
    
    
    protected void Page_Load(object sender, EventArgs e)  
    
        {  
    
            
    
            string id2 = Request.Form["name2"];  
    
            string website2 = Request.Form["website2"];  
    
            Response.Write(id2 + "< br>" + website2);  
    
     
    
     
    
            Response.Write("你使用的是" + Request.RequestType + "方式传送数据");  
    
     
    
        }  
    
     
    
    string id4 = Request["name4"];  
    
            string website4 = Request["website4"];  
    
            Response.Write(id4 + "< br>" + website4);  
    
     
    
    
    
    //第3种,同时接受get和post 方法传送数据的代码写法:
    
    //A 写法
    
    
    
    string id3 = Request.Params["name3"];  
    
            string website3 = Request.Params["website3"];  
    
            Response.Write(id3 + "< br>" + website3);  
    
     
    
    //B 写法
    
    
    
    string id4 = Request["name4"];  
    
            string website4 = Request["website4"];  
    
            Response.Write(id4 + "< br>" + website4);
    
    		
  •  

     

    二、Request.ServerVariables中的各种参数

  •  
  •  
  • C# 代码   复制
  • 
    Request.ServerVariables("Url") 
    
    			

    返回服务器地址

    Request.ServerVariables("Path_Info")

    客户端提供的路径信息

    Request.ServerVariables("Appl_Physical_Path")

    与应用程序元数据库路径相应的物理路径

    Request.ServerVariables("Path_Translated")

    通过由虚拟至物理的映射后得到的路径

    Request.ServerVariables("Script_Name")

    执行脚本的名称

    Request.ServerVariables("Query_String")

    查询字符串內容

    Request.ServerVariables("Http_Referer")

    请求的字符串內容

    Request.ServerVariables("Server_Port")

    接受请求的服务器端口号

    Request.ServerVariables("Remote_Addr")

    发出请求的远程主机的IP地址

    Request.ServerVariables("Remote_Host")

    发出请求的远程主机名称

    Request.ServerVariables("Local_Addr")

    返回接受请求的服务器地址

    Request.ServerVariables("Http_Host")

    返回服务器地址

    Request.ServerVariables("Server_Name")

    服务器的主机名、DNS地址或IP地址

    Request.ServerVariables("Request_Method")

    提出请求的方法比如GET、HEAD、POST等等

    Request.ServerVariables("Server_Port_Secure")

    如果接受请求的服务器端口为安全端口时,则为1,否则为0

    Request.ServerVariables("Server_Protocol")

    服务器使用的协议的名称和版本

     Request.ServerVariables("Server_Software")

    应答请求并运行网关的服务器软件的名称和版本

    Request.ServerVariables("All_Http")

     

    客户端发送的所有HTTP标头,前缀HTTP_

    Request.ServerVariables("All_Raw")

    客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_

    Request.ServerVariables("Appl_MD_Path")

    应用程序的元数据库路径

    Request.ServerVariables("Content_Length")

    客户端发出內容的长度

    Request.ServerVariables("Https")

    如果请求穿过安全通道(SSL),则返回ON如果请求来自非安全通道,则返回OFF

    Request.ServerVariables("Instance_ID")

    IIS实例的ID号

    Request.ServerVariables("Instance_Meta_Path")

    响应请求的IIS实例的元数据库路径

    Request.ServerVariables("Http_Accept_Encoding")

    返回內容如:gzip,deflate

    Request.ServerVariables("Http_Accept_Language")

    返回內容如:en-us

    Request.ServerVariables("Http_Connection")

    返回內容:Keep-Alive

    Request.ServerVariables("Http_Cookie")

    Request.ServerVariables("Http_User_Agent")

    返回內容:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)

    Request.ServerVariables("Https_Keysize")

    安全套接字层连接关键字的位数,如128

    Request.ServerVariables("Https_Secretkeysize")

    服务器验证私人关键字的位数如1024

    Request.ServerVariables("Https_Server_Issuer")

    服务器证书的发行者字段

    Request.ServerVariables("Https_Server_Subject")

    服务器证书的主题字段

    Request.ServerVariables("Auth_Password")

    当使用基本验证模式时,客户在密码对话框中输入的密码

    Request.ServerVariables("Auth_Type")

    是用户访问受保护的脚本时,服务器用於检验用户的验证方法

    Request.ServerVariables("Auth_User")

    代证的用户名

    Request.ServerVariables("Cert_Cookie")

    唯一的客户证书ID号

    Request.ServerVariables("Cert_Flag")

    客户证书标誌,如有客户端证书,则bit0为0如果客户端证书验证无效,bit1被设置为1

    Request.ServerVariables("Cert_Issuer")

    用户证书中的发行者字段

    Request.ServerVariables("Cert_Keysize")

    安全套接字层连接关键字的位数,如128

    Request.ServerVariables("Cert_Secretkeysize")

    服务器验证私人关键字的位数如1024

    Request.ServerVariables("Cert_Serialnumber")

    客户证书的序列号字段

    Request.ServerVariables("Cert_Server_Issuer")

    服务器证书的发行者字段

    Request.ServerVariables("Cert_Server_Subject")

    服务器证书的主题字段

    Request.ServerVariables("Cert_Subject")

    客户端证书的主题字段

    Request.ServerVariables("Content_Type")

    客户发送的form內容或HTTPPUT的数据类型

     

     

  •  

    标签:Request
    您可能感兴趣