Cookie的简单使用
一,新建一个空网站,添加一个Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
二,进入Default.aspx.cs添加一下代码
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
// 从当前请求得到cookie
HttpCookie cookie = Request.Cookies.Get("Cookie");
// 检查cookie是否存在
if (cookie == null)
{
sb.Append("没有在客户端接收到Cookie ");
sb.Append("添加可以放回的cookie值 <br/>");
// 创建cookie
cookie = new HttpCookie("Cookie");
// 将cookie的值设置为当前时间
cookie.Value = DateTime.Now.ToString();
// 设置10分钟内到期的cookie.
cookie.Expires = DateTime.Now.AddMinutes(10d);
// 插入cookie在当前的HTTP响应
Response.Cookies.Add(cookie);
}
else
{
sb.Append("接收到客户端的Cookie <br/>");
sb.Append("Cookie 名字: " + cookie.Name + "<br/>");
sb.Append("Cookie 值: " + cookie.Value + "<br/>");
sb.Append("Cookie 到期时间: " +
cookie.Expires.ToString() + "<br/>");
}
Label1.Text = sb.ToString();
}
三,右键浏览,注意由于第一次浏览器是没有生成cookie,则需要刷新一遍才可以看到效果
四,cookie数据存放在客户的浏览器.
cookie设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。
五,session机制是一种服务器端的机制.session数据放在服务器
1,当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。
2,保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。然而,也是这个原因造成当关闭浏览器的时候,session id丢失了,再次连接服务器时也就无法找到原来的session.所以就有“只要关闭浏览器,session就消失了”的错觉.
3,但在真实的服务器中,除非程序通知服务器删除一个session,否则服务器会一直保留.
最新文章
- ASP.NET 4.5.256 has not been registered on the Web server. You need to manually configure your Web server for ASP.NET 4.5.256 in order for your site to run correctly
- 关于“wining attitude”
- dapper.rainbow
- CSS3 @keyframes 语法
- mac上的键盘生活——打字训练
- MyEclipse新建Web Project报错
- win10下配置默认软件(转)
- C# Directory.Exists() 文件存在但返回一直为false
- 【原创】访问Linux进程文件表导致系统异常复位的排查记录
- Reactor模式理解
- Selecting Courses POJ - 2239(我是沙雕吧 按时间点建边 || 匹配水题)
- 关于form与表单操作
- 51 NOd 1459 迷宫游戏 (最短路径)
- 【模板】Treap
- js异步刷新局部页面
- win7 资源资源管理器访问FTP站点
- 机器学习进阶-图像梯度计算-scharr算子与laplacian算子(拉普拉斯) 1.cv2.Scharr(使用scharr算子进行计算) 2.cv2.laplician(使用拉普拉斯算子进行计算)
- 微信小程序开发1-入门知识准备
- IDEA git修改远程仓库地址
- R中,将从MySQL中获取的结果字符列表转化为向量,并测试绘制图形
热门文章
- Struts框架的入门使用
- C# 匿名方法和拉姆达表达式
- console.dir()和console.log()的区别
- 主成分分析(Principal components analysis)-最大方差解释
- UGUI和现实世界的比例关系
- CODE[VS]-最小数和最大数-整数处理-天梯青铜
- CodeForces 707B Bakery
- [DP之计数DP]
- Dynamic Programming - leetcode [动态规划]
- video标签MP4兼容chrome问题