cookie、session、sessionid 与jsessionid

  • 时间:
  • 浏览:1
  • 来源:5分PK10_5分PK10官网

Cookie session的产生过程                                

        保存這個session id的措施可不要能 采用cookie,过后在交互过程中浏览器可不要能 自动的按照规则把這個标识发挥给服务器。一般這個cookie的名字都不 类事SEEESIONID。但cookie可不要能 被人为的禁止,则不能 有其他机制以便在cookie被禁止时仍然不能把session id传递回服务器。       有老要被使用的一种技术叫做URL重写,很久把session id直接附打上去URL路径的上面。还有一种技术叫做表单隐藏字段。很久服务器会自动修改表单,打上去有有有一个 隐藏字段,以便在表单提交时不能把session id传递回服务器。

Jsessionid?



     cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起去构成cookie的作用范围。若不设置过期时间,则表示這個cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。這個生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上很久保位于内存里,当然這個行为并都不 规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,這個cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可不要能 在不同的浏览器程序间共享,比如有有有一个 IE窗口。而对于保位于内存里的cookie,不同的浏览器有不同的避免措施。 

  凭借柜台职员的记忆,由收柜台职员来为每位顾客办理存款/取款业务,单凭职员的记忆力,要记到每位顾客的相貌,并很慢這個顾客当前的存款以及存取的次数,每次存取的金额是几个。-----------這個措施表示协议一种支持情况表。

 Terry_Huang  回复: 

  session机制。session机制是一种服务器端的机制,服务器使用一种类事散列表的形态(很久可能 很久使用散列表)来保存信息。 

 cookie、session、sessionid 与jsessionid,要想明白大伙儿儿之间的关系,下面来看个有趣的场景来帮你理解。

cookie与session的机制与原理                                                                 

  大伙儿儿都知道银行,银行的收柜台每天要接待客户存款/取款业务,可不要能 有几种方案:

  Jsessionid很久tomcat的对sessionid的叫法,着实很久sessionid;在其它的容器也许就不叫jsessionid了。

  程序员更快发现,不可能 不能提供其他按需生成的动太信息,会使web的交互能力大大增强。程序员一方面在HTML中打上去表单、脚本、DOM等客户端行为,来增加web应用与客户端的交互性。当时人面在服务器端测有老要出显了CGI规范以响应客户端的动态请求,作为传输载体的HTTP协议打上去了文件上载、cookie 等形态。那cookie的原理与大伙儿儿上面介绍的使用存折记录用户应为的措施是一样一样的。

  具体来说cookie机制采用的是在客户端保持情况表的方案,而session机制采用的是在服务器端保持情况表的方案。一起去大伙儿儿也想看 ,不可能 采用服务器端保持情况表的方案在客户端很久需要 保存有有有一个 标识,统统session机制不可能 不能 借有益于cookie机制来达到保存标识的目的,但实际上它还有其他选着。

  大伙儿儿都知道HTTP协议一种是无情况表的,客户只不能 简单的向服务器来发送请求下载其他文件,客户端向服务器端发送的每次请求都不 独立的。对于当前的web应用,HTTP的“无情况表”,愿因其他应用都不 得不花费几瓶的精力来记录用户的操作步骤。就像大伙儿儿上面介绍的第一种情况表,银行职员合适 几瓶的精力来记忆每一位用户的存/取款记录。

     使用银行卡的措施,发给每位银行用户一张银行卡,银行卡上有有有有一个 唯一的卡号,可不要能了 其它任何信息,当顾客来存款/取款时,搞定银行卡,银行把卡号输入的电脑,更快就显示当前用户的存/取款记录。這個措施的安全性就会有很大的提高。用户我想要手脚可不要能了攻破银行的服务器来修改当时人的存/取款信息,过后做难度会很大。---------這個措施很久服务器端保持情况表。

  给你举个更生动的例子,过后大学的过后, 有老要去大卡司去喝奶茶,每喝一杯,都可不要能 得到有有有一个 印花(第一次喝的过后他会给你个积分卡片),集齐6个印花过后,就可不要能 免费获得一杯奶茶。过后子,印花的 信息是保位于客户的积分卡上,你不可能 不怀好意励志的话 ,就当时人搞几个神似的印花去骗奶茶喝吧。哈哈,过后子是都不 更符合在客户端端保持情况表。而拿银行卡去银行 取钱,大伙儿儿的卡只不能 保存有有有一个 卡号,更多的信息是保位于服务器中,过后也比较符合服务器端保持情况表。希望能帮到你。

-------------------最新更新--------

    不可能 是我的描述缺乏贴切,积分卡和存折是类事的,用户的存取信息是保位于存折上的,存折又是在客户手里(客户端)不可能 现在很少大家用存折了,或存折不可能 被银行收回掉了。

   cookie机制。正统的cookie挂接是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中打上去一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript不可能 VBScript也可不要能 生成cookie。而cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,不可能 某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求身后发送给服务器。

  通过前面的例子大伙儿儿不可能 发现,通过cookie的措施存储信息,不可能 会位于其他定的安全性,不可能 所有的信息都不 写在客户端的,客户不可能 会对這個信息进行修改或清除。而且 就又有老要出显session的措施用于保存用户行为,這個措施的原理与前面介绍银行卡的措施是一样的。

     使用存折的措施,而且 柜台职员就把每个顾客的存款/取款的信息保位于这张折子,而且 交给顾客保管,当顾客来存款/取款时,很久搞定存折,职员查看存折就对当前这位顾客的存款/取款信息一目了然。当然,你马上会想到,顾客修改這個信息缘何办?大伙儿儿都不 措施对每次存款/取款记录上面盖章。无盖章的很久假冒信息。但不可能 顾客是真的要伪造,当然印章也是可不要能 伪造的。-------------這個措施很久在客户端端保持情况表。

  当程序不能 为某个客户端的请求创建有有有一个 session时,服务器首先检查這個客户端的请求里是是是否是是已蕴含 了有有有一个 session标识------------称为session id,不可能 已蕴含 则说明过后不可能 为此客户端创建过session,服务器就按照session id把這個session检索出来使用(检索可不要能了,会新建有有有一个 ),不可能 客户端请求不蕴含 session id,则为此客户端创建有有有一个 session而且 生成有有有一个 与此session相关联的session idsession id的值应该是有有有一个 既不要重复,又不容易被找到规律以仿造的字符串,這個session id将被在本次响应中返回给客户端保存。