ASP.NET内置对象小结(二)

本文详细对比了HTTP协议中的GET和POST方法,包括它们在数据传输、安全性等方面的差异,并介绍了如何在Web开发中使用Request和Response对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天主要总结了一下ResponseRequest的使用。

一、Response

    Response的使用很简单,常见的用法和属性。


1:如果我们想获得如下的显示,怎么做?


代码:

using System;
usingSystem.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
namespaceWebApplication1
{
    public partial class _Default :System.Web.UI.Page
    {
        protected void Page_Load(object sender,EventArgs e)
        {
           Response.Write("<center>");
            for (int i = 2; i < 7; i++)
            {
               Response.Write("<p>");
                Response.Write("<fontsize=");
                Response.Write(i);
               Response.Write(">");
               Response.Write("坚持可以创造奇迹!");
               Response.Write("</font>");
               Response.Write("</p>");
            }
           Response.Write("</center>");
        }
    }
}


我们可以通过ResponseWrite方法,进行写操作。

二、Request

 

     Web系统所依托的应用层协议是HTTP协议,HTTP协议支持GetPost两种方法讲数据从浏览器传输到服务器中。

 

下面来比较一下GetPost的区别(在网上见到了一篇写的不错的粘过来了)

1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII

POST把提交的数据则放置在是HTTP包的包体中。

 

2."GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据,IIS4中最大为80KBIIS5中为100KB"??!

以上这句是我从其他文章转过来的,其实这样说是错误的,不准确的:

(1).首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IEURL长度的限制是2083字节(2K+35)。对于其他浏览器,如NetscapeFireFox等,理论上没有长度限制,其限制取决于操作系统的支持。

注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度。

(2).理论上讲,POST是没有大小限制的HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。

对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。

由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:

1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB

2).IIS 6.0默认上传文件的最大大小是4MB

3).IIS 6.0默认最大请求头是16KB

IIS 6.0之前没有这些限制。[见参考资料5]

所以上面的80K100K可能只是默认值而已(注:关于IIS4IIS5的参数,我还没有确认),但肯定是可以自己设置的。由于每个版本的IIS对这些参数的默认值都不一样,具体请参考相关的IIS配置文档。

3.ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。在JSP中,用request.getParameter(\"XXXX\")来获取,虽然jsp中也有request.getQueryString()方法,但使用起来比较麻烦,比如:传一个test.jsp?name=hyddd&password=hyddd,用request.getQueryString()得到的是:name=hyddd&password=hyddd。在PHP中,可以用$_GET$_POST分别获取GETPOST中的数据,而$_REQUEST则可以获取GETPOST两种请求中的数据。值得注意的是,JSP中使用requestPHP中使用$_REQUEST都会有隐患,这个下次再写个文章总结。

4.POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-siterequest forgery攻击.Post方法发送的数据不会显示在URL中,所以 ,相对来说POST方法安全一些。

  转载自[hyddd(http://www.cnblogs.com/hyddd/)]:>

   总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM这中,默认为GET。实质上,GETPOST只是发送机制不同,并不是一个取一个发。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值