ASP中使用Session变量的优缺点
2008-04-22 21:35
211 查看
许多人利用Session变量来开发ASP(Active Server Pages)。这些变量与任何编程语言中通用的变量非常相似,并且具有和通用变量一样的优点和缺陷。任何命令都需要运行时间和存储空间(甚至GOTO’s语句如此),Session变量同样需要自己的运行时间和存储空间。过多地使用Session变量就会导致无法代码冗余,并且使服务器运行成本提高下面是我个人使用Session变量的一些主要观点和心得体会。
优点
如果要在诸多Web页间传递一个变量,那么用Session变量要比通过QueryString传递变量可使问题简化。
要使WEb站点具有用户化,可以考虑使用Session变量。你的站点的每位访问者都有用户化的经验,基于此,随着LDAP和诸如MS Site Server等的使用,已不必再将所有用户化过程置入Session变量了,而这个用户化是取决于用户喜好的。
你可以在任何想要使用的时候直接使用session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放。
缺点
Session变量和cookies是同一类型的。如果某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个Session变量!
当一个用户访问某页面时,每个Session变量的运行环境便自动生成,这些Session变量可在用户离开该页面后仍保留20分钟!(事实上,这些变量一直可保留至“timeout”。“timeout”的时间长短由Web服务器管理员设定。一些站点上的变量仅维持了3分钟,一些则为10分钟,还有一些则保留至默认值20分钟。)所以,如果在Session中置入了较大的对象(如ADO recordsets,connections, 等等),那就有麻烦了!随着站点访问量的增大,服务器将会因此而无法正常运行!
因为创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。
虽然“你可以在任何想要使用的时候直接使用session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放”。但是,“谁”想到那儿呢?变量的含义是什么?这些都变得不很清晰。
总结
使用Session变量既有优点,又有缺点。就我个人的观点,最好少用,但在某些地方使用它们确实能使Web开发大大地简化。是否使用Session变量完全取决于个人的需要,无论使用与否,都要事先考虑其优缺点
个人觉得,SESSION比COOKIES好用。缺点是不能保留有效期及占用少许服务器资源。关闭浏览器即失效。
********************************
个人觉得,SESSION比COOKIES好用。
这个没错
缺点是不能保留有效期
在自己的空间建一个目录,然后指定session_path,把SESSION放在自己的目录
里,就不存在有效期的问题了
占用少许服务器资源
这个倒是的,不过,也没办法.但,你可以使用许多session,却不能使用许多cookie
也算是一个特点吧,有点见仁见智的意思.
关闭浏览器即失效。
个人觉得这是优点,因为cookie可以拷贝,保存,如果别人拷了COOKIE,还是有可能
对系统存在安全上的问题.相对,SESSION就安全多了.
************************************************************************
mackyliu(NB联盟--风流才子),请不要见怪,借了你的几句话说说我对SESSION的看法,
请见谅.
另,楼主,基本上,COOKIE能做到的,SESSION都能做到,两者的功能差不多的.但纯粹从
安全性上考虑,SESSION要安全的多,原因上面有许多位已经谈到了.纯粹从速度上来
看,COOKIE应该说有优势.
至于楼主要做的,应该是从这两者间找出一个动态的平衡吧??
个人建议,供楼主参考.
优点
如果要在诸多Web页间传递一个变量,那么用Session变量要比通过QueryString传递变量可使问题简化。
要使WEb站点具有用户化,可以考虑使用Session变量。你的站点的每位访问者都有用户化的经验,基于此,随着LDAP和诸如MS Site Server等的使用,已不必再将所有用户化过程置入Session变量了,而这个用户化是取决于用户喜好的。
你可以在任何想要使用的时候直接使用session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放。
缺点
Session变量和cookies是同一类型的。如果某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个Session变量!
当一个用户访问某页面时,每个Session变量的运行环境便自动生成,这些Session变量可在用户离开该页面后仍保留20分钟!(事实上,这些变量一直可保留至“timeout”。“timeout”的时间长短由Web服务器管理员设定。一些站点上的变量仅维持了3分钟,一些则为10分钟,还有一些则保留至默认值20分钟。)所以,如果在Session中置入了较大的对象(如ADO recordsets,connections, 等等),那就有麻烦了!随着站点访问量的增大,服务器将会因此而无法正常运行!
因为创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。
虽然“你可以在任何想要使用的时候直接使用session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放”。但是,“谁”想到那儿呢?变量的含义是什么?这些都变得不很清晰。
总结
使用Session变量既有优点,又有缺点。就我个人的观点,最好少用,但在某些地方使用它们确实能使Web开发大大地简化。是否使用Session变量完全取决于个人的需要,无论使用与否,都要事先考虑其优缺点
个人觉得,SESSION比COOKIES好用。缺点是不能保留有效期及占用少许服务器资源。关闭浏览器即失效。
********************************
个人觉得,SESSION比COOKIES好用。
这个没错
缺点是不能保留有效期
在自己的空间建一个目录,然后指定session_path,把SESSION放在自己的目录
里,就不存在有效期的问题了
占用少许服务器资源
这个倒是的,不过,也没办法.但,你可以使用许多session,却不能使用许多cookie
也算是一个特点吧,有点见仁见智的意思.
关闭浏览器即失效。
个人觉得这是优点,因为cookie可以拷贝,保存,如果别人拷了COOKIE,还是有可能
对系统存在安全上的问题.相对,SESSION就安全多了.
************************************************************************
mackyliu(NB联盟--风流才子),请不要见怪,借了你的几句话说说我对SESSION的看法,
请见谅.
另,楼主,基本上,COOKIE能做到的,SESSION都能做到,两者的功能差不多的.但纯粹从
安全性上考虑,SESSION要安全的多,原因上面有许多位已经谈到了.纯粹从速度上来
看,COOKIE应该说有优势.
至于楼主要做的,应该是从这两者间找出一个动态的平衡吧??
个人建议,供楼主参考.
相关文章推荐
- ASP中使用Session变量的优缺点
- 使用SQL Server存储ASP.NET Session变量
- 有的网站的相关内容必须要在登录后才可以查看,其登录信息保存在session变量之中。这样,使用asphttp等组件就难以正确得到所要的信息。
- ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session
- 使用thinkPHP3.2.3从一个页面向另一个页面传值,动态变量模板展示,从session获取变量在模板展示
- 在ASP.NET中使用Session常见问题集锦(转)
- asp.net的session使用
- 如何统计网站访问量,代码实现使用全局变量 Application,start,end,Session_start,Session_end事件
- [转]Asp.net Core 使用Redis存储Session
- 在ASP.NET中使用Session常见问题集锦
- asp.net cookie和session的详细使用
- 在ASP.NET中使用Session常见问题集锦
- Asp.net中static变量和viewstate的使用方法(谨慎)
- 在ASP.NET中使用Session常见问题集锦
- 在asp.net中使用session常见问题集锦
- SMARTY模板中如何使用get,post,request,cookies,session,server变量
- 在asp中使用变量和常量
- ASP.NET Session使用详解
- 在ASP.NET中使用Session常见问题集锦
- ASP.net web servie中使用session