asp get与post获取的区别

1.HTTP请求格式:

<request line>

<headers>

<blank line>

[<request-body>]

在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。

 

(1)get是从服务器上获取数据,post是向服务器传送数据。

(1)  在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

(2) 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

(2)  GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

(3)  安全性问题。正如在(1)中提到,使用Get的时候,参数会显示在地址栏上,而Post不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。

 

2.HTTPS请求

    

什么是 HTTPS?
HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。
你也可以说:HTTPS = HTTP + SSL
 
   public string DealGet(string url)  
        {  
            //设置安全的类型  
            ServicePointManager.ServerCertificateValidationCallback  
                       += RemoteCertificateValidate;  
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;  //该属性仅为使用安全超文本传输协议 (HTTPS) 方案的新连接选择安全套接字层 (SSL) 协议
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);  
            myRequest.Method = "GET";  
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();  
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);  
            string content = reader.ReadToEnd();  
            reader.Close();  
            return content;  
        }  
 
//信任https请求证书  
 private static bool RemoteCertificateValidate(  
            object sender, X509Certificate cert,  
             X509Chain chain, SslPolicyErrors error)  
        {  
            System.Console.WriteLine("Warning, trust any certificate");  
            return true;  
        }  

 

 

 

 

Get的方式

1.asp

*********************************

      <FORM ACTION="2.asp" METHOD="get">
<INPUT TYPE="text" NAME="Text" >
<INPUT TYPE="submit" VALUE="get方式"></INPUT>
</FORM>

***************************************************

2.asp

************************************

<%

     Dim i
i= Request.QueryString("Text")
Response.write i

%>

************************************

相当于点击form内包的submit按钮,浏览器就转到2.asp,本来应该是http://localhost/2.asp,但是为了传递参数,客户的浏览器端的ie栏就变成http://localhost/2.asp?Text=sd,后面加了问号还有参数Text的值sd,意思是要访问服务器的2.asp,而且要传递Text的值给服务器。而服务器用Request.QueryString("Text") 获得了浏览器ie地址栏传递过来的Text的值。

 

Post的方法

1.asp

*******************************************

<FORM ACTION="2.asp" METHOD="post">
<INPUT TYPE="text" NAME="Text" >
<INPUT TYPE="submit" VALUE="post方式"></INPUT>
</FORM>

********************************************

2.asp

*************************************************

<%Dim i
i= Request.form("Text")
 Response.write i
%>

*************************************************

 

 

假设有个页面 test.asp?id=111
这里我们的页面是用GET的方法.这时用request.querystring("id")与request("id")是一样得,应该如果不指定REQUEST得集合,首先就会从Querystring搜索.

而如果我们的页面是用的是POST的方法发送数据给test.asp,那么用request.querystring("id")是不行的了(他只能取GET),而要用request.from("id"),而如果还用request("id")他也能取到数据,但先检测QUERYSTRING的值,显然速度就慢了.

 

转载自:http://blog.sina.com.cn/s/blog_5e4ec4e101017dgl.html

 

posted @ 2018-01-19 09:31  乌柒柒  阅读(4650)  评论(0编辑  收藏  举报