【ASP.Net】get与post传输、request接收和response返回

一、URL

统一资源定位符(Uniform Resource Locator)是可以从互联网上得到的资源的位置和访问方法的一种简洁的表示。互联网上的每一个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

二、get与post

在B/S中,前台与后台的数据交互,都是通过HTML中Form表单来完成的,form提供了两种数据传输方式,get与post提交。

当然由于数据传输时是遵循HTTP协议的,而这个协议又是基于TCP/IP的关于数据如何在万维网中如何通信的协议。所以get与post二者也都是基于TCP/IP 的,都是TCP链接,这样以来,其实get与post的实现原理上是一样的。

但是为了对紧急数据的快速传输(或者是为了尽量避免数据堵塞),出现了这两种传输方式,使get和post传输的过程区别开来,达到传输不同数据的效果。详细内容可参考这篇博客

那么他们两个在传输过程中有什么“区别”呢?

1、get是从服务器上获取数据,post是向服务器传送数据。
2、get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3、对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端
用Request.Form获取提交的数据。
4、get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5、get安全性非常低,post安全性较高。

三、request与response

表单中的数据提交之后用request来接收(可以接收get提交的也可以接收post来提交的),由response将数据返回到浏览器。随后这个对象销毁。

例子:

前台HTML中的代码

	
	    

上面,method方法,即表单的提交方法。action方法,指定表单的提交目标。

后台接收代码

	public partial class WebForm1 : System.Web.UI.Page
	{
	    protected void Page_Load(object sender, EventArgs e)
	    {
	        //Request三种获取表单值得方法。
	 
	        #region  对于post方法递交表单的获取值方法
	        //string userName = Request.Form.Get("txtUserName").ToString();
	        //string userPwd = Request.Form.Get("txtUserPwd").ToString();
	        #endregion
	 
	        #region  对于get方法递交表单的获取值方法
	        //string userName = Request.QueryString["txtUserName"].ToString();  
	        //string userPwd = Request.QueryString["txtUserPwd"].ToString();
	        #endregion
	        
	        #region  对两者方法都适用的方法,运用Reuqest的索引值去获取所要求的表单值
	        string userName = Request["txtUserName"].ToString();
	        string userPwd = Request["txtUserPwd"].ToString();
	        #endregion
	        Response.Write("登陆的用户名为:" + userName + ";密码为:" + userPwd);
	 
	        if (userName=="a"&&userPwd=="b")
	        {
	            Response.Redirect("WebForm2.aspx");
	        }
	        else
	        {
	            Response.Redirect("login.html");
	        }       
	    }
	}

对于response对象,主要用到的方法是:

respone.write(string)

responst.redirect(url)

response.write(string)的作用是从服务器端向客户端返回数据(写数据)。
response.rediec(“url”)的作用是在服务器端重定向另一个网页。

二者的属性

Request常用属性

AppIicationPath 传回目前正在执行的服务器端的虚拟目录。
Browser 传回有关客户端浏览器的功能信息
Clientcertificate 传回目前客户端所发出的网页浏览请求的联机ID。
ContentEncoding 传回客户端所支持的字段设定。中文Intemet ExpIorer预设ChineseTraditional(Big5)。
ContentType 传回目前需求的MIME内容类型。
Cookies 传回一个HttpcOOkiecoIIection对象的集合。
FiIes 传回客户端上传的文件集合。
Form 传回有关窗体变量的集合。

Response常用属性

BufferOutput 设定HTTP输出是否要做缓冲处理,预设为True。
Cache 传回目前网页快取的设定。
Charset 设定或取得HTTP的输出字符编码。
Cookies 传回目前请求的Httpcookieco}lection对象的集合。
IsCIientconnected 传回客户端是否仍然和服务器连接。
Statuscode 传回或设定输出至客户端浏览器的HTTP状态码,预设是200。
StatusDescription 传回或设定输出至客户端浏览器的HTTP状态说明字符串.预设是OK。
SuppressContent 设定是否将HTTP的内容送至客户端浏览器,若为True则网页将不会传至客户端。

Response常用方法
【ASP.Net】get与post传输、request接收和response返回_第1张图片

三、isPostBack——判断是否回发

if (!IsPostBack) 当页面不是回发时就执行相应的代码。
一般在page_load事件的前面都会加上,当此页面为回发状态时(即IsPostBack=true),代表之前已经加载过这个页面中的控件,并获得了控件中的内容,此时如果再次重新加载则会清空原来的数据,使页面重新生成。

你可能感兴趣的:(get,post,request,response,Asp.Net)