Cookie详细介绍
cookie是一小段文本,伴随着用户请求和页面在服务器和浏览器之间传递
用户请求站点时,获取的不仅仅是html代码,还有一小段cookie(如果有cookie的话)
cookie是和URL关联的
cookie与站点关联,而不是和页面关联,无论请求的是站点里面的哪个页面,cookie
都将在服务器和浏览器之间传递
cookie总是存储在客户端
内存cookie:由浏览器维护,浏览器关闭则过期
硬盘cookie:写到客户端的硬盘里,可以设定过期时间。
问题:cookie可以删除吗?即通过代码删除
典型应用:网购和自动登录
注:设置的cookie在浏览器---工具---Internet选项---设置(S)---查看文件(V)里面
可以找到相应的cookie文件夹,一般不要在这个文件夹里直接查看,因为还会到客户
端请求一下,可以吧文件拷到别的文件中查看
1.使用response.cookies.add(cookie);
2.关闭浏览器cookie文件消失,导致不能重新读取或者根本没有写入到临时文件夹中(
可能有乱码),都可能是浏览器的问题,需要重置浏览器。
3.cookie是和网站相关的。浏览器负责将和你的网站相关的cookie发送到服务器上
4.每次用户点击如服务器端按钮或者采取任何动作触发了回发事件(导致客户端重新去
服务器段请求或者相应服务器端的事件),此网站的相应cookie就会回发到服务器端
5.如果不设置过期时间,cookie就是临时cookie,不会被写到客户端的临时文件夹里(
硬盘),只存在于客户端浏览器维护的内存中,当关闭浏览器,这块内存就会回收,
cookie也被销毁,所以重新打开浏览器就无法读取了。所以设置了过期时间的cookie
(写到硬盘里了),叫做永久cookie
5.各种问题:乱码;没有文件,但是能读能写能关能开;发布之后有乱码,浏览器关
闭cookie文件消失
6.cookie和浏览器相关,IE写的cookie,不能使用其他浏览器来读取
7.使用js时限两个checkbox互斥功能。
例:
前台:
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="读cookie"
onclick="Button1_Click" /><br />
<asp:Button ID="Button2" runat="server" Text="写cookie"
onclick="Button2_Click" />
<br /><asp:TextBox ID="txtCookie" runat="server"></asp:TextBox>
</div>
</form>
</body>
后台:
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie cookie = new HttpCookie("name");
cookie.Value = "你好啊";
cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
}
protected void Button2_Click(object sender, EventArgs e)
{
if (Request.Cookies["name"] != null)
{
txtCookie.Text = Request.Cookies["name"].Value;
}
else
{
txtCookie.Text = "亲,你还没有写哟";
}
}
效果图: