JavaWEB学习7-4_Cookie和Session会话跟踪

Cookie和Session与会话跟踪技术

一、自己的理解

会话跟踪,客户端与服务器的交互称为会话,一次会话可能发生多次请求,从第一个请求开始,以知道最后一个请求结束,整个会话结束。

会话跟踪就是,在会话中产生的数据要实现共享,称为会话跟踪

作用域,"数据"可以共享在不同请求之内,还是在页面内,还是在整个会话中,还是在服务器中的所有应用,有所区别就是作用域的意义

常用的会话跟踪技术就是cookiesession

Http是短连接,一次请求走完就关闭连接(无状态),这样一来服务器并不知道下一次请求的是不是同一个用户,应不应该给他某些响应,就是说,服务器不能根据请求连接来跟踪会话,那么就需要别的技术

二、Cookie

Cookie意为“甜饼”,由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie

2.1 Cookie原理

Cookie由服务器产生,游览器收到以后把请求保存在本地,当浏览器再次访问是,浏览器会自动携带上Cookie,这样一来,服务器就可以判断是谁来访问自己

Cookie需要浏览器支持,所以会出现一些网站会向用户发出是否同意保存Cookie,也可以提高用户的体验感

2.2 缺点

Cookie是保存在本地,这样来看,安全性就值得大大的考虑了,Cookie伪装,破解都有可能发生,虽然解决了(携带状态访问),但也带来了隐患

2.3 总结

服务器给每一个客户端Cookie分配一个"id",用户访问时就可以知道来访问的人是谁,出现原因是为了解决http无状态的问题

三、Session

Session这个东西查了很久并没有查到有关的时间,什么时候被提出,被什么公司提出,什么时候加入标准的。。。,以后再查

3.1 原理

web中使用比较多的还是Session,与Cookie不同,Session存储在服务器中,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 所以Session的存储也是键值对的形式,也是用来解决Http无状态连接的问题,客户端请求,然后服务器存储一个Session用来判断每一次请求的是不是同一个客户端

3.2 HttpSession

HttpSession是Java平台对session机制的实现规范,HttpSession是一个接口

3.3 其他问题总结

  1. Session 什么时候被创建

    注意:Session在用户进行访问,并且服务器调用 HttpServletRequest.getSession(true) 时才被创建

  2. Session 什么时候被删除

    三种情况

    1. 服务器调用 HttpSession.invalidate()
    2. Session 超时了
    3. 服务器进程停止
  3. Session不会随浏览器关闭而消除,只有上卖弄三种方式才能消除

  4. 同一个浏览器两个页面访问的Session是相同的,不同浏览器访问的Session不相同

四、面试

  1. cookie和session的区别

    1. cookie由服务器生成,存储在本地,Session 存储在服务器
    2. cookie相对来说不安全,因为存储在本地,会发生伪造,拦截等
    3. session存储在服务器,当访问增加后,会影响服务器的性能,而cookie存储在本地对服务器的压力更小一些
    4. 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
  2. session产生的session_id放在cookie里面,如果用户把cookie禁止掉,是不是session也不能用

    Session可以通过其他方法获取session_id,通过url重写实现,在url中保存session信息

  3. 为什么session更安全

以上是一些资料总结和自己的理解,如果有误,敬请指正

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值