asp.net(一)session和cookie

不管是之前的牛腩新闻发布系统,还是最近的asp.net都讲到了session机制和cookie机制,那么究竟它们都是什么东东,竟让这么多的开发者都青睐于它,下面就一起探个究竟。

首先,我们都知道session机制是存储在服务器端的,而cookie是存储在客户端的,session依赖与cookie。你还能继续说出来吗??

当我们浏览网站的时候,web服务器会将一些小小的资料放在你的计算机上,而cookie会帮你在网站上所打的文字或者所做出的一些选择都记录下来。当下次再次光临这个网站,web服务器会先查看它保留的记录中有没有你访问的这些资料,如果有就会根据里面的内容将特定的网页内容展现给你。下面是我从网上找的一幅图:

cookie主要包括:名字、值、过期时间、路径和域。如果不设置过期时间,则表示这个cookie的生命期就只是浏览器的整个会话期,如果关闭浏览器,cookie也就消失,这也就是所说的“会话cookie”。而如果设置了过期时间,那么在没有超过设定的时间之前,浏览器会一直将cookie保存在你的硬盘上,即使关闭浏览器,这些cookie依旧存在。

那么session是干嘛的,为什么说“session依赖于cookie呢?”

首先需要明确的是session是一种会话机制,一个用户的所有请求操作都是一个会话。怎么就是一个会话机制?从生活中打电话这个例子来讲,我们从拨打号码,经过讲话或者占线,最后到挂段。这整整一个过程就是一个会话。如果有些抽象,我们找一个大家熟悉的行为:淘宝或者京东的购物车,当我们看中某一款商品我们都会将它放在购物车,之后我们可以进行数量的编辑或者直接删除这个商品,乃至到很久以后的购买,这一整个过程就是一个session。

session是一种服务器端的机制,服务器使用一种类似于散列表的结构来保存信息。当程序需要为某个客户创建一个session标识时,服务器首先检查这个客户端的请求里是否包含,如果已经包含则检索出来进行使用,如果不包含则新建一个和其他不重复的session标识(session ID)。而保存这个session ID的方式可以采用cookie。

但需要注意:session并不是随着浏览器的关闭而消失的,因为HTTP是一个无状态的协议,客户每次读取web页面,服务器都会打开新的会话,依旧使用购物车的例子。当我们将一些物品加入购物车,那么除非我们自己删除否则系统不会将购物车中的东西删除,所以只有客户端使用session的时间超过服务器为session自动设定的失效时,服务器才会将session删除节省空间。

所以综上所述,cookie可以理解成一个对用户身份的唯一标示符,它的作用就和身份证对我们的作用差不多,它帮服务器识别我们的身份,如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

           这样比对我们应该就不会分不清它们两个了吧。

时间: 2024-11-06 09:30:44

asp.net(一)session和cookie的相关文章

AspNet MVC4 教学-16:Asp.Net MVC4 Session及Cookie快速比较Demo

创建basic类型mvc. HomeController.cs: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcSessionCookieTest.Controllers { public class HomeController : Controller { // // GET: /Home/ publ

asp.net内置对象session和cookie

1.各个机器的session对象不同,不同浏览器之间不通用(换个浏览器,是个新的session). 2.session状态对象起始于网页打开,终止于网页关闭,生命周期有限. 3.关闭浏览器/超时的情况下,session对象即被销毁,不要放太多/太大的对象在session. 4.Web应用程序在传统意义上无状态,需要使用内置对象进行客户端状态的保存. 5.session对象和Application对象存储在服务端,cookie对象存储在客户端. 6.session对象适用于安全性相比之下较高的场合

ASP.Net篇之Session与Cookie

Session: Session是“会话”的意思,然而,因为http协议是无状态的,那么每次客户端请求服务器端,服务器端都会以“崭新”的页面展示给客户端,这在静态的html页面中是不会存在任何影响,但是在动态页面中,需要与用户交互,要保持与客户端用户的联系,则需要一些东西来保持,而Session的话,则是具有“保持状态,保持会话”的能力. 注意的是,Session是保存在服务器端的.(Cookie是保存在客户端的)需要注意的是,如果用户突然关闭了客户端页面,那么Session就会丢失,即“会话丢

Asp.net Session 与Cookie的应用

写程序的很多人都知道的,Session是服务器端的东西而Cooike是客户端的东西.因为B/S模式是无状态模式,它们的应用都是要存储客户端的某些登录或是加密的信息. Session存在于服务器端,当然要占用一些服务器资源,当有户数量过多时,不可避免的影响服务器运行速度与资源.而Cookie存在在客户端不占用服务器资源,当用户浏览时,系统读取Cookie中的信息,进行匹配,这样又降低的安全性. Session的失效期太短,Asp.net中默认的是20分钟吧,而Cookie可以自定义时间,从1分钟到

ASP.NET之Application、Session和Cookie的区别

在Asp.net中Application.Session和Cookie都可以保存信息,那么它们有什么不同呢? 一.首先Application是在服务器端建立一个状态变量,存储于服务器的全局变量来存储所需信息.它是建立在内存中的,这个变量可以被网站的所有页面访问. 访问Application对象变量方法: Application["变量名"]=变量值        变量=Application["变量名"] 实例:可以用在网站统计用户的访问量,便于管理员对网站访问情况

Session和Cookie的使用总结

转:http://www.cnblogs.com/shuang121/archive/2011/03/02/1968768.html Session和Cookie的使用总结: Session和cookie都是asp.Net中的内置对象,至于他们有什么区别,在这里就不在多说,现在来说说一些比较实用点的东西: 我们知道网站都有一个后台管理系统,其中有登录和退出两个功能,在登录的时候我们往往会把用户的信息保存到session或者cookie中,以便后面使用,那么在登录的时候我们要注意哪些呢? 1.把一

asp.net中session的原理及应用

Session简介丶特性 1.Session是一种Web会话中的常用状态之一. 2.Session提供了一种把信息保存在服务器内存中的方式.他能储存任何数据类型,包含自定义对象. 3.每个客户端的Seesion是独立存储的. 4.在整个会话过程中,只要SessionID的cookie不丢失,都会保存Session信息的. 5.Session不能跨进程访问,只能由该会话的用户访问.应为提取Session数据的id标识是以Cookie的方式保存到访问者浏览器的缓存里的. 6.当会话终止,或过期时,服

IIS 7.5 IE 10+ 提交Session,Cookie丢失

这是ASP.NET 2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了 ASP.NET的特定功能失效,认为游览器不支持Cookies功能,不处理与Cookie相关的程式码等,从而在浏览器中不保存服务器返回的 Session标识,造成丢失等. 简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browser definition file) 步骤如下: 1.添加一个"App_Browsers"文件夹

登陆权限验证Session和Cookie用法及BasePage类使用

最近在做ASP.NET的项目时,接触到了登陆权限模块,所有总结了一下登陆时用到的知识和方法技巧. 如图说明:实现的效果如图,由于验证码验证比较简单这里就不介绍了 首先用代码生成器生成项目,以三层为例进行说明, 那么我以BlogUser表为例,然后就会有一个BlogUser实体类对象. 登陆的思想:当我们登陆成功的时候要将实体存入到session中,免登陆也是这个思想,只不过是当我们勾选免登陆的时候,第一次登陆进去,那么将用户的id存入到cookie中去,通过用户的id查找用户的实体,再赋值给se

ASP.NET跨页面传值——Cookie

ASP.NET跨页面传值 Cookie,这个也是大家常使用的方法,Cookie用于在用户浏览器上存储小块的信息,保存用户的相关信息,比如用户访问某网站时用户的ID,用户的偏好等,用户下次访问就可以通过检索获得以前的信息.所以Cookie也可以在页面间传递值.Cookie通过HTTP头在浏览器和服务器之间来回传递的.Cookie只能包含字符串的值,如果想在Cookie存储整数值,那么需要先转换为字符串的形式. 注意: Cookie与Session一样,都是什对每一个用户而言的,但是有个本质的区别,