013-Cookie状态保持

常用的状态(信息)保持方式(重点)

ViewState:
ASP.NET 的 .aspx页面特有,页面级的;
就是在页面上的一个隐藏域中保存客户端单独使用的数据的一种方式;
服务器端控件的值都自动保存在ViewState中;
Cookie:
HTTP协议下的一种方式,通过该方式,服务器或脚本能够在客户机上维护状态信息;
就是在客户端保存客户端单独使用的数据的一种方式;
就像你的病历本一样,医院直接给你带回家;
Session:
现在指的是进程内Session。
在服务器端保存客户端单独使用的数据的一种方式;
就像银行账户,钱都存在银行里,你就拿一张银行卡(SessionId)回家;
Application:
在服务器端保存共享数据的一种方式;
就像银行的单人公共卫生间,谁进去都行,但一次去一个,进去了就锁上门,出来再把锁打开;

-》Cookie
-》类型HttpCookie,主要属性包括:Name(键)、Value(值)、Expires(过期时间)
-》读:Request.Cookies["键"],返回HttpCookie对象,通过Value属性获取值
-》写:Response.Cookies.Add(对象)
-》说明:默认有效时间为进程内有效,浏览器关闭则失效
-》传输:通过http协议的请求头、响应头,在浏览器与服务器间传输
-》示例1:记录上次访问时间
查看报文中的cookie信息

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CookieTest.aspx.cs" Inherits="t4_State.CookieTest" %>
 2
 3 <!DOCTYPE html>
 4
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12         <div>
13
14             <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
15             <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
16
17         </div>
18     </form>
19 </body>
20 </html>
 1     public partial class CookieTest : System.Web.UI.Page
 2     {
 3         protected void Page_Load(object sender, EventArgs e)
 4         {
 5             if (!IsPostBack)
 6             {
 7                 ////写cookie
 8                 HttpCookie cookie = new HttpCookie("name", Server.UrlEncode("杨过"));
 9                 //一天后过期
10                 //cookie.Expires = DateTime.Now.AddDays(1);
11                 //一秒前过期
12                 cookie.Expires = DateTime.Now.AddMinutes(-1);
13                 Response.Cookies.Add(cookie);
14             }
15         }
16
17         protected void Button1_Click(object sender, EventArgs e)
18         {
19             //读取cookie
20             HttpCookie cookie = Request.Cookies["name"];
21             if (cookie != null)
22             {
23                 Label1.Text = Server.UrlDecode(cookie.Value);
24             }
25         }
26     }

-》示例2:跨页面共享信息

CookieWrite.aspx

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CookieWrite.aspx.cs" Inherits="t4_State.CookieWrite" %>
 2
 3 <!DOCTYPE html>
 4
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12         <div>
13             <a href="CookieRead.aspx">读取Cookie</a>
14         </div>
15     </form>
16 </body>
17 </html>
1     public partial class CookieWrite : System.Web.UI.Page
2     {
3         protected void Page_Load(object sender, EventArgs e)
4         {
5             HttpCookie cookie=new HttpCookie("name","abc");
6             Response.Cookies.Add(cookie);
7         }
8     }

CookieRead.aspx

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CookieRead.aspx.cs" Inherits="t4_State.CookieRead" %>
 2
 3 <!DOCTYPE html>
 4
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12         <div>
13         </div>
14     </form>
15 </body>
16 </html>
 1     public partial class CookieRead : System.Web.UI.Page
 2     {
 3         protected void Page_Load(object sender, EventArgs e)
 4         {
 5             HttpCookie cookie = Request.Cookies["name"];
 6             if (cookie != null)
 7             {
 8                 Response.Write(cookie.Value);
 9             }
10         }
11     }
时间: 2024-11-10 01:25:13

013-Cookie状态保持的相关文章

Android使用Xutils保存cookie实现登录后访问

http://blog.memecodes.com/340.html 在http连接中,会存在着cookie状态,需要访问登录后的网页,就必须保存用于认证的cookie:之后每次发送请求,将保存的cookie一并带上便可实现登录后访问.开发中,一般都会使用组件.框架.平台等方式来进行快速开发,本文将介绍使用Xutils框架如何来保存cookie. 使用Xutils保存cookie 1 HttpUtils com.lidroid.xutils.HttpUtils.configCookieStore

关于android webview 设置cookie的问题

转自:http://blog.csdn.net/encienqi/article/details/7912733 我们在android中访问网络经常会用到Apache的HttpClient,用此类去访问网络获取数据, 但是在写android界面的时候又时不时的会用到一些WebView组件,这时候访问一个以经登录的页面的时候cookie设置就有个问题 在HttpClient中保存下来的Cookie怎么设置到WebView组件里,让WebView也保持住Cookie状态,也就是登录状态呢? Cook

自动登录、记住我(保存登陆状态)实现

自动登录.记住我(保存登陆状态)实现:保存在客户端不能用session,可以用cookies保存 实现方式:第一种方法:可以把SessionId(GUID)放到cookies中,但 这样为了让用户下次访问我们网站时,知道这 个sessionId对应的是哪一个用户,我们还要在 数据库中建张表.表字段:主键,UserId  SessionId  时间 缺点:不能在两台机器上同时保存 第二种方法:把UserId放cookies中  密码(加密)相对于第一种方法优点:多台机器可以保存缺点:不安全,密码放

java之Cookie详解

Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie).Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入JSESSIONID用于标记一个会话(session),这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状

Django框架-cookie与session

from django.shortcuts import redirect from django.shortcuts import render from login import models # 获取类才能orm操作库 """ cookie与session解决登录验证 1.models中创建UserInfo类 python manage.py makemigrations login /migrate login --database=login_db 2.urls.p

HTTP图解

本节内容 俗话说好的开发,底层知识必须过硬,不然再创新的技术,你也理解不深入,比如python web开发工程师,想要学习任何一个框架,底层都是http和socket,底层抓牢了,学起来会很轻松,所以楼主今天特意写了一篇底层的博客,来源于<HTTP图解>这本书.下载内容在本节末尾,可以自行前去下载观看,比我个人了解得多要全面很多,不过不要忘记点赞哈!! 本文只要内容: 了解web及网络基础 简单的http协议 了解web及网络基础 1.使用http协议访问web 当我们用网页浏览器(web b

PHPSession-完全PHP5之session篇

完全PHP5之session篇 转自http://blog.csdn.net/masterft/article/details/1640122 1.什么是session?       Session的中文译名叫做"会话",其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.目前社会上对session的理解非常混乱:有时候我们可以看到这样的话"在一个浏览器会话期间,...",这里的会话是指从一

HTTP协议入门

一.WWW基本概念 WWW是World Wide Web的缩写,意为万维网.要了解什么是万维网,需要先了解超文本的概念.超文本就是一种用于显示信息的文本,而在这个文本中可以包含有跳转到其他文本的超链接,通过这些链接就可以访问与文本相关联的其它文本,就这样通过链接的方式将两个或多个文本关联起来的文本称为超文本. 在用户访问网站时,打开了一个超文本之后有许多链接,点击一个链接就可以跳转到其他文本,也就是能够在多个文本之间来回跳转,这样就形成了一个类似"蜘蛛网"一样的网,称为万维网(Worl

php session实现原理

SESSION的实现中采用COOKIE技术,SESSION会在客户端保存一个包含session_id(SESSION编号)的COOKIE: 在服务器端保存其他session变量,比如session_name等等.当用户请求服务器时也把session_id一起发送到服务器,通过 session_id提取所保存在服务器端的变量,就能识别用户是谁了.同时也不难理解为什么SESSION有时会失效了. 当客户 端禁用COOKIE时(点击IE中的"工具"?"Internet选项"

session使用

Session的声明与使用 Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start().session_start()函数的语法格式如下: Bool session_start(void) //创建Session,开始一个会话,进行Session初始化 注意:session_start()函数之前不能有任何输出 当第一次访问网站时,Seesion_start()函数就会创建一个唯一的Session ID,并自动通过HTTP的响应头,将这个Session