使用post与使用get区别

Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:
1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图1.4.3所示。

图1.4.3 Get方式提交表单后的地址栏

而Post提交后地栏不变,如图1.4.4所示。

图1.4.4 Post方式提交表单后的地址栏不变

2.在服务器端只能用Request.QueryString来获取Get方式提交来的数据,用Post方式提交的数据只能用Request.Form来获取:

<%@language="VBScript" Codepage="936"%>
<html>
<head>
<title> 表单提交方式测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<form method="post" action="<%=Request.ServerVariables("Script_Name")%>">
  提交数据:
  <input name="oStr" type="text">
    <br>
    提交方式:
    <select name="select" οnchange="this.form.method=this.value">
      <option value="Post" selected>Post</option>
      <option value="Get">Get</option>
    </select>
    <br>
  <input type="submit" name="Submit" value="提交">
</form>
<%
 if Request("Submit")<>"" then
        Response.Write "通过"&Request.ServerVariables("Request_Method")&"方式提交的数据为:"
    if Request.ServerVariables("Request_Method")="GET" then
          Response.Write Request.QueryString("oStr")
    else
          Response.Write Request.Form("oStr")
    end if
end if
%>
</body>
</html>

注意:虽然两种提交方式可以统一用Request("oStr")来获取提交数据,但是这样对程序效率有影响,不推荐使用。
特别提示
通过IIS运行本例代码(用http://localhost/method.asp这种方式来浏览,有关IIS的安装和配置,请参考第四部分),输入所提交的数据,选择Post方式提交,将看到图1.4.4所示的效果。选择Get方式提交,效果将如图1.4.3所示。
特别说明


一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。本例中用到的表单的属性解释(ASP部分请参考第四部分):
    Get把参数添加到action属性指定的地址中,并以锚方式打开。
    Post通过HTTP post处理发送数据。 

 

 

 HTTP / 1 . 0报文有两种类型:请求和响应。HTTP / 1 . 0请求的格式是:
reqe t - l i n e
headers ( 0或有多个)
<blank line>
body (只对POST请求有效)

request - l i n e的格式是:
request request-URI HTTP版本号

支持以下三种请求:
1) G E T请求,返回re q u e s t - U R I所指出的任意信息。
2) H E A D请求,类似于G E T请求,但服务器程序只返回指定文档的首部信息,而不包含实际的文档内容。该请求通常被用来测试超文本链接的正确性、可访问性和最近的修改。
3) P O S T请求用来发送电子邮件、新闻或发送能由交互用户填写的表格。这是唯一需要在请求中发送b o d y的请求。使用P O S T请求时需要在报文首部C o n t e n t - L e n g t h字段中
指出b o d y的长度。
// --TCP/IP 协议详解卷3


明白?get 请求表示客户端请求一个uri,服务器返回客户端请求的uri,post请求表示客户端请求的时候还要提交数据,比喻提交form表单,要提交的数据会放到请求报文的body部分。服务器收到后这样的请求后通常需要来处理这些数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值