Get和Post与服务器交互的区别

HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET POST首先来走个实验,一个页面传值GetPost.aspx,另一个页面接收值GetValue.aspx
//GetPost.aspx前台:
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="GetPost.aspx.cs" Inherits="GetPost" %>

 

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

< html xmlns="http://www.w3.org/1999/xhtml" >
< head runat="server">
    <title> 无标题页</title>
</ head >
< body >
    <form id="form1" method="get" action="GetValue.aspx" >
    <div>
    <input TYPE="text" name="Text" value="Get: Hello World"></input>

 

< input type="submit" value="Method=Get"></input>

 

 

    </div>
    </form>
      <form id="form2" method="post" action="GetValue.aspx" >
    <div>
   <input type="text" NAME="Text" VALUE="Post: Hello World"></input>

 

< input type=submit VALUE="Method=Post"></input>

 

 

 

 

    </div>
    </form>
</ body >
</html>
//GetValue.aspx后台:
if (Request.QueryString.Count != 0)
        {
            this.Label1.Text = Request.QueryString["Text"].ToString();
        }
        else
        {
            this.Label1.Text = Request.Form["Text"].ToString();
        }
分别点击GetPost.aspx页面上的按钮,根据得出get与post的区别:
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。GetPost.aspx的URL地址改变了,后面带上了参数?Text=Get%3A+Hello+World,传递的多个参数以&连接,如字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。URL地址栏没发生改变,用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString["Text"].ToString()获取变量的值,对于post方式,服务器端用Request.Form["Text"].ToString()获取提交的数据。但同时可以使用Request["Text"].ToString(),只是Request效率不高,不推荐使用。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。因为get将传输的值显示在url上了,所以不安全,建议一般用post传值
6. post刷新getvaluse.aspx时会弹出提示框,问是否重新发送您以前提交的信息,get不会。
7.如果不设定method,经过测试,表单将默认为get。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值