首页 / 知识
维持状态的方式比较
2023-04-17 08:03:00

comparison of ways to maintain state在Web开发中有多种维护用户状态的方法。 这些是我现在可以想到的: 请求参数 饼干 表单方法(获取和发布) Viewstate(我猜只有ASP.NET) 会话(InProc Web服务器) 会话(专用Web服务器) 会话(数据库)
本地持久性(Google Gears)(感谢Steve Moyer) 我知道每种方法都有其自身的优点和缺点,例如cookie不够安全以及QueryString有长度限制并且很难看! ;) 但是,在设计Web应用程序时,我总是对在哪种应用程序中使用哪种方法或避免使用哪种方法感到困惑。 我想知道的是,您通常使用哪种方法,或者更有趣地建议您在某些情况下要避免使用哪种方法?为什么? 尽管这是一个非常复杂的问题,但在考虑实现状态时我会考虑一些快速的问题。
因此,我想我真的无法想象除了最琐碎的原因之外,什么都不想使用基于会话的状态。 安全也是一个问题。用户可以随意更改查询字符串或表单字段中的值。用户身份验证应保存在加密的或篡改的cookie或服务器端会话中。当用户完成表单时,跟踪表单中传递的值很可能可以将其保留在隐藏的表单字段中。 但是,关于查询字符串的妙处(有时是危险的)是,单击链接的任何人都可以获取状态。如上所述,如果它给用户一些他们不应该拥有的授权,这将很危险。不过,很高兴向您的朋友展示您在网站上找到的内容。 随着Web 2.0的使用不断增加,我认为您的列表中缺少两种重要的方法: 8个AJAX应用程序-由于页面不会重新加载并且没有页面到页面的导航,因此状态不是问题(但是持久的用户数据必须使用异步XML调用)。 9本地持久性-基于浏览器的应用程序可以使用诸如Google Gears之类的库将其用户数据和状态持久化到本地硬盘中。 至于哪一个最好,我认为它们都有自己的位置,但是Query String方法对于搜索引擎来说是有问题的。 当您需要获取数据时,已签名的Cookie链接到某种数据库存储。如果有连接的后端,则没有理由在客户端存储数据;如果这是一个面向公众的网站,那么您只是在寻找麻烦。 请注意您存储客户端的什么状态(查询字符串,表单字段,cookie)。任何与安全性相关的内容都不应存储在客户端,除非会话标识符被合理地掩盖且难以猜测,否则可能除外。太多的网站都设有" authenticated = true"之类的设置,并将其存储在Cookie或查询字符串或隐藏的表单字段中。用户绕过类似的东西是微不足道的。请记住,来自客户端的任何输入都可能被篡改,因此不应被信任。 如果计划将网站托管在诸如webhost4life之类的价格便宜的主机上,请避免使用InProc。我已经学到了很难的方法,因为他们的系统被过度订阅,所以他们非常频繁地回收应用程序,这会使您的会话丢失。很烦人。 他们的建议是使用StateServer,这很好,除了必须序列化/反序列化回传的会话eash。我喜欢物体,我的Web应用程序充满了物体。我担心切换到StateServer时的性能。我需要重构,只将我真正需要的东西放在会议中。 希望我在开始之前就知道... 干杯,罗布。 就个人而言,由于几乎所有的Web开发都使用PHP,因此我使用PHP的会话处理程序。 根据我的经验,会话是最灵活的:通常,它们比数据库访问要快,并且它们生成的cookie会在浏览器关闭时消失(默认情况下)。 使用什么和避免什么不是什么问题,而是什么时候使用。每种情况在最佳情况下都有其特定的情况,而在最坏情况下则具有不同的情况。 决定因素通常是数据的生存期。会话状态的寿命比表单字段的寿命长,等等。 |
最新内容
相关内容
linux命令删除用户组?
linux命令删除用户组?,管理,密码,系统,用户组,用户,概念,命令,文件,管理员,工作组,Linux命令之用户组管理1、查看/etc/group文件,只存在名称为m纯命令行linux服务器?
纯命令行linux服务器?,密码,服务,系统,命令,终端,地址,百度,情况,状态,公共,在linux下如何访问服务器首先,连接相应linux主机,进入到linux命令行linux中用户创建命令?
linux中用户创建命令?,密码,系统,用户,软件,命令,联系方式,管理,信息,用户名,新用户,linux怎么添加用户1、打开xshell软件,远程访问您的服务器linux注销命令用户?
linux注销命令用户?,系统,服务,密码,地址,工作,命令,状态,工具,信息,基础,linux注销用户命令1、shutdown是一个用来安全关闭或重启Linux系统的linux命令行创建用户?
linux命令行创建用户?,系统,密码,软件,新增,用户,联系方式,管理,用户名,命令,账号,Linux中如何创建用户和用户组Linux如何创建用户?打开xshelllinux系统用户命令?
linux系统用户命令?,系统,工作,地址,信息,管理,命令,目录,时间,电脑,名称,请问linux操作系统的命令是什么linux命令是对Linux系统进行管理的命检查linux服务器命令?
检查linux服务器命令?,系统,信息,状态,情况,时间,工具,网络,环境,服务,电脑,如何查看linux服务器的版本和配置信息?1、登录到linux服务器执行llinux命令所有用户?
linux命令所有用户?,系统,密码,信息,情况,名称,命令,用户,时间,地址,位置,如何查询linux系统中所有用户的用户名和密码首先进入到linux桌面,在linux命令进入用户?
linux命令进入用户?,系统,密码,用户,地址,信息,软件,命令,用户名,联系方式,电脑,linux进入第一次启动+怎么样创建用户?1、进入Linux系统,登陆管linux命令用户管理?
linux命令用户管理?,系统,密码,管理,工作,信息,地址,工具,命令,用户,基础,LInux用户管理查看/etc/group文件,只存在名称为modifiedgroup的用户linux命令进程状态?
linux命令进程状态?,系统,状态,进程,命令,数据,管理,软件,名称,信息,参数,Linux终止前台进程的命令1、首先,连接相应linux主机,进入到linux命令linux用户与组的命令?
linux用户与组的命令?,管理,系统,名称,用户组,密码,用户,命令,情况,信息,单位,Linux里面groups+用户命令作用是什么?1、在Linux中,用户组是一种