Loading

cookie 和 session 的使用

cookie是由服务器端创建(new Cookie()),存储在客户端浏览器上的文件,用来跟踪客户端和服务器之间的会话,cookie的安全性能较低,并且存储的最大数据不能超过4k。不支持跨一级域名访问,但是可以跨二级域名访问。
分为状态cookie和持久化cookie,状态cookie会在用户关闭浏览器时自动销毁。持久化cookie存储在用户硬盘中,设置的失效时间,到达时间后,系统会自动删除该文件,导致持久化cookie失效。

Cookie使用

Cookie 对于存储内容是基于明文的方式存储的,所以安全性很低。不要在 Cookie 中存 放敏感数据。在数据存储时,虽然在 Servlet4.0 中 Cookie 支持中文,但是建议对 Cookie 中 存放的内容做编码处理,也可提高安全性。

Session

session时在服务器创建并存储在服务器上的,创建时间取决于我们什么时候调用getSession()或getSession(true)方法。安全性能较高。
原则上session的存储大小不受限制,但是因为会占用服务器内存,如果session数量级过大,对服务器性能有影响。
session的销毁形式有两种,调用invalidate()方法和设置失效时间,

Session 使用

HttpSession 对象是保存在服务端的,所以安全性较高。我们可以在 HttpSession 对象中 存储数据,但是由于 HttpSession 对象的生命周期不固定,所以不建议存放业务数据。一般 情况下我们只是存放用户登录信息。

cookie和session的关系:

session对象创建后,会生成一个sessionID放到cookie中,客户端每次向服务器端发出请求时,会把所有的请求信息和sessionID放到cookies中发送到服务器端,服务器端通过解析cookie对象,如果包含sessionID,服务器端会将和sessionID向对应的session取出。如果没有对应的session ID,服务器端会重新创建一个session对象。因为cookie记录着sessionID,如果cookie被销毁,服务器端对应的session将失效。因为cookie中的sessioID被销毁,客户端下次请求时就不再是之前的sessionID

posted @ 2021-03-01 11:47  笑忘舒  阅读(252)  评论(0编辑  收藏  举报