计算机网络知识点——应用层Cookie与Session

Cookie与Session

Session原理

Session可以放在文件、内存中或数据库都可以,是以键值对的形式存储。Session也是一种key-value的属性对。

当程序需要为某个客户端的请求创建一个Session的时候,服务器首先检查这个客户端的请求里是否已包含了一个Session标识,称为Session ID。如果已包含一个Session ID则说明以前已经为此客户端创建过Session,服务器就按照Session ID把这个Session检索出来使用(如果检索不到,可能会新建一个,根据 getSession()方法的参数);如果客户端请求不包含Session ID,则为此客户端创建一个 session并且生成一个与此Session相关联的Session ID,这个Session ID将被在本次响应中返回给客户端保存。

Session的客户端实现形式(即Session ID的保存方法)

一般浏览器通过以下3种方式来保存Session:

  1. 使用Cookie来保存。 来保存,这是最常见的方法,“记住我的登录状态”功能的实现正是基于这种方式的。服务器通过设置Cookie的方式将Session ID发送到浏览器。如果我们不设置过期时间,那么这个Cookie将不存放在硬盘上,当浏览器关闭的时候,Cookie就消失了,这个Session ID就丢失了。如果我们设置这个时间,那么这个Cookie会保存在客户端硬盘中,即使浏览器关闭,这个值仍然存在,下次访问相应网站时,同样会发送到服务器上。
  2. URL重写。就是把Session ID直接附加在URL路径的后面,也就是像我们经常看到JSP网站会有aaa.jsp?JSESSIONID=*一样的。
  3. 在页面表单里面增加隐藏域。这种方式实际上和第二种方式一样,只不过前者通过GET方式发送数据,后者使用POST方式发送数据。但是明显后者比较麻烦。

Session何时被创建

一个常见的错误是以为Session在有客户端访问时就被创建,然而事实是直到某server端程序(如Servlet)调用HttpServletReq

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值