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请求
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