zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    动态网络社团检测学习笔记 --- 随机块模型小结之简介
    十五组第四次作业
    17现代软件工程十五组第二次作业
    17现代软件工程十五组第三次作业
    现代软件工程2017十五组成员介绍
    软件测试学习日志3 ————软件测试作业之控制流图
    软件测试学习日志———— round 2 Junit+intellj idea 安装及简单的测试使用
    软件测试学习日志————round 1 some questions of two small programs
    [关于printPrime是()方法的控制流图和点覆盖、边覆盖、主路径覆盖]
    【在myeclipse中使用Junit(4.12), Hamcrest(1.3) 和Eclemma】
  • 原文地址:https://www.cnblogs.com/yyl001/p/8315370.html
Copyright © 2011-2022 走看看