asp.net基础篇——Cookie

1.http协议是无状态的,不会记得上次和网页“发生了什么”。服务器不记得上次给了浏览器什么,浏览器需要记住这些值(input就是记到value中,对于其他的值就是要放到隐藏字段中,比如viewstate),下次再提交到服务器的时候就是要把上次的值提交到服务器,让它想起来。如果要知道上一次的状态,一个方法是在对浏览器响应结束之前将状态信息保存到页面表单中,下次页面再向服务器发出请求时带上这些状态信息,这样服务器就能根据这些状态信息还原上次的状态了,类似于去看病的病历本。

2.状态信息保存到隐藏字段中的缺点:加大网站的流量、降低访问速度、机密数据放到表单中会有数据欺骗等安全性问题。

3.表单时和页面相关的,只有浏览器端提交了这些数据服务器端才能得到,而有时候希望在服务器端任意的地方存取一些和访问者有关的信息,这时候就不方便将这些信息保存到表单中,因为如果那样的话就必须随时注意在所有页面的表单中都保存这些信息。

4.Cookie是和站点相关的,并且每次向服务器请求的时候除了发送表单参数外,还会和站点相关的所有Cookie都提交给服务器,是强制性的。Cookie也是保存在浏览器端的,而且浏览器会在每次请求的时候都会把和这个站点相关的Cookie提交到服务器,并且将服务器端返回的Cookie更新回数据库,因此可以将信息保存在Cookie中,然后在服务器端读取、修改。服务器返回数据除了普通的html数据以外,还会返回修改的Cookie,浏览器把拿到的Cookie值更新到本地浏览器的Cookie就可以了。

5.互联网优化的案例:图片服务器和主站域名不一样,降低Cookie流量的传输。

6.设值和读取Cookie的值:

新建一个aspx网页,一个TextBox控件id为Textbox1,一个Button按钮,用来设值,添加该按钮的双击事件,代码如下:

1    protected void Button1_Click(object sender, EventArgs e)

2     {

3         Response.SetCookie(new HttpCookie("UseName",TextBox1.Text));//在客户端也能通过$.cookie取,服务端设置Cookie

4     }

 

新建一个aspx网页,一个Label控件id为Label1,一个Button按钮,用来取值,添加该按钮的双击事件,代码如下:

1   protected void Button1_Click(object sender, EventArgs e)

2     {

3         Label1.Text = Request.Cookies["UserName"].Value;

4     }

所有服务器端的处理程序都是实现IHttpHandler接口的。

 

你可能感兴趣的:(asp.net)