cookie学习笔记
目录
cookie概要
cookie(存储在用户本地终端上的数据)。cookie 的出现是因为 HTTP 是无状态的一种协议,也就是说服务器记不住你,可能你每刷新一次网页,就要重新输入一次账号密码进行登录。这显然是极大的降低了效率,cookie 的作用就好比服务器给你贴个标签,然后你每次向服务器再发请求时,服务器就能够通过cookie 认出你。它的作用简而言之就是服务器给每个客户端(浏览器)打上标签,方便服务器辨认。
cookie与session不同
随着网站的发展,功能不断增加,涉及的数据交互也越来越多,通过cookie机制来传递这么多的数据的话很低效,而且要知道coookie字段存储在“HTTP header" 中,会消耗很多网络资源。而session 是一个数据结构,由网站的开发者设计,所以可以承载各种数据,只要客户端的 cookie 传来一个唯一的 session ID,服务器就可以找到对应的 session,认出这个客户。当然,由于 session 存储在服务器中,肯定会消耗服务器的资源,所以 session 一般都会有一个过期时间,服务器一般会定期检查并删除过期的 session,如果后来该用户再次访问服务器,可能就会面临重新登录等等措施,然后服务器新建一个 session,将 session ID 通过 cookie 的形式传送给客户端。
cookie实训
实验内容
设计一个ASP.NET网站,向Default.aspx页面中添加一个按钮控件和一个标签控件。页面首次加载时创建一个名为MyCookie,有效期为1分钟的Cookie,并为其赋值OK,标签中显示Cookie到期时间和值。在Cookie有效期内单击按钮,标签中显示“Cookie有效”和Cookie值,过期后单击该按钮,标签中显示“Cookie已失效”。
代码
HTML代码:
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <asp:Button ID="btnOK" runat="server" OnClick="btnOK_Click" Text="按钮" Height="57px" Width="117px" />
- </div>
- <asp:Label ID="lblCookie" runat="server" Text="Label"></asp:Label>
- </form>
- </body>
- </html>
事件代码
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- this.Title = "Cookie使用示例";
- if (!IsPostBack)
- {
- Response.Cookies["MyCookie"].Value = "OK";
- Response.Cookies["MyCookie"].Expires = DateTime.Now.AddMinutes(1);
- lblCookie.Text = "Cookie已创建,有效期为:" + DateTime.Now.AddMinutes(1) + ",其值为:" + Request.Cookies["MyCookie"].Value;
- }
- }
- protected void btnOK_Click(object sender, EventArgs e)
- {
- if (Request.Cookies["MyCookie"] == null)
- {
- lblCookie.Text = "Cookie已过期!";
- }
- else
- {
- lblCookie.Text = "Cookie有效,其值为:" + Request.Cookies["MyCookie"].Value;
- }
- }
- }
-