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

Asp.net2.0系列(十一):Get和Post与服务器交互的区别
2008-03-27 17:34

HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET POST首先来走个实验,一个页面传值GetPost.aspx,另一个页面接收值GetValue.aspx

 

//GetPost.aspx前台:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GetPost.aspx.cs" Inherits="GetPost" %>

 

 

 

<!DOCTYPE html PUBLIC "-//W 3C//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.aspxURL地址改变了,后面带上了参数?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、付费专栏及课程。

余额充值