Http之Get/Posth区别
1Q?/span>HTTPh格式Q?/span>
<request line>
<headers>
<blank line>
[<request-body>]
?/span>HTTPh中,W一行必L一个请求行Q?/span>request lineQ,用来说明hcd、要讉K的资源以?qing)用?/span>HTTP版本。紧接着是一个首部(headerQ小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以dL的其他数?/span>[UCZ体(bodyQ]?/span>
2Q?/span>GET?/span>POST区别
HTTP定义?jin)与服务器交互的不同?gu)Q最基本的方法是 GET ?/span> POST.
HTTP-GET和HTTP-POST是用HTTP的标准协议动词,用于~码和传送变量名/变量值对参数Qƈ且用相关的h语义。每个HTTP-GET和HTTP-POST都由一pdHTTPh头组成,q些h头定义了(jin)客户端从服务器请求了(jin)什么,而响应则是由一pdHTTP应答头和应答数据l成Q如果请求成功则q回应答?br />
HTTP-GET以用MIMEcdapplication/x-www-form-urlencoded的urlencoded文本的格式传递参数。Urlencoding是一U字W编码,保证被传送的参数由遵循规范的文本l成Q例如一个空格的~码?%20"。附加参数还能被认ؓ(f)是一个查询字W串?br />
与HTTP-GETcMQHTTP-POST参数也是被URL~码的。然而,变量?变量g作ؓ(f)URL的一部分被传送,而是攑֜实际的HTTPh消息内部被传送?/span>
Q?Qget?span style="color: #ff00ff">从服务器?/span>获取数据Qpost?span style="color: #ff00ff">向服务器传?/span>数据?/span>
Q?Q?span style="font: 7pt 'Times New Roman'"> 在客L(fng)Q?/span>Get方式在通过URL提交数据Q数?/span>?/span>URL?/span>可以看到Q?/span>POST方式Q数据放|在HTML HEADER?/span>提交?/span>
Q?Q?nbsp;对于get方式Q服务器端用Request.QueryString获取变量的|对于post方式Q服务器端用Request.Form获取提交的数据?/span>
Q?Q?span style="font: 7pt 'Times New Roman'"> GET方式提交的数据最?span style="color: #ff00ff">只能?/span>1024字节Q?/span>POST?span style="color: #ff00ff">没有此限?/span>?/span>
Q?Q?span style="font: 7pt 'Times New Roman'"> 安全性问题。正如在Q?/span>1Q中提到Q?/span> Get 的时候,参数?span style="color: #ff00ff">昄在地址栏上Q?/span> Post 不会(x)。所以,如果q些数据是中文数据而且是非敏感数据Q那么?/span> getQ如果用戯入的数据不是中文字符而且包含敏感数据Q那么还是?/span> post为好?/span>
注:(x)所谓安全的意味着该操作用于获取信息而非修改信息。幂{的意味着对同一 URL 的多个请求应该返回同L(fng)l果。完整的定义q不像看h那样严格。换句话_(d)GET h一般不应生副作用。从Ҏ(gu)上讲Q其目标是当用户打开一个链接时Q她可以信从自w的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次h?x)返回不同的一Ҏ(gu)闻,该操作仍然被认ؓ(f)是安全的和幂{的Q因为它Lq回当前的新闅R反之亦然?/span>POST h׃那么L?jin)?/span>POST 表示可能改变服务器上的资源的h。仍然以新闻站点ZQ读者对文章的注解应该通过 POST h实现Q因为在注解提交之后站点已经不同?jin)(比方说文章下面出C条注解)(j)?/span>
下面举一个简单的例子来说明它们的区别Q?/span>
<!-分别通过get和post方式提交表单-->
<FORM ACTION="getpost.asp" METHOD="get">
<INPUT TYPE="text" NAME="Text" VALUE="http://wxf0701.cnblogs.com//>
<INPUT TYPE="submit" VALUE="Get方式"></INPUT>
</FORM>
<BR>
<FORM ACTION="getpost.asp" METHOD="post">
<INPUT TYPE="text" NAME="Text" VALUE="http://wxf0701.cnblogs.com/>
<INPUT TYPE="submit" VALUE="Post方式"></INPUT>
</FORM>
<BR>
<% If Request.QueryString("Text") <> "" Then %>
通过get方式传递的字符串是Q?"<B><%= Request.QueryString("Text") %></B>"<BR>
<% End If %>
<% If Request.Form("Text") <> "" Then %>
通过Post方式传递的字符串是Q?"<B><%= Request.Form("Text") %></B>"<BR>
<% End If %>

]]>