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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM