session跟cookie

1.session的创建跟简介

  javaweb应用中,session的创建时通过HttpServletRequest的getSession方发,传递参数为true则创建一个session对象,在创建session的同时,服务器会给出一个对应的sessionId,这个sessionId在后面会被用来获取已经穿件的session对象,然后就可以往session对象中添加料了,这些内容会被保存在服务器端,发送到客户端时只会携带sessionId过去,而客户端发送请求的时候会将这个sessionId携带到服务端服务端会根据这个sessionId识别请求过来的用户,如此一来边解决了http无状态的问题,用户的状态得以保存。

2.session跟cookie的联系

  每一次的http请求中,session都会将sessionId放在http的头部发送到客户端,cookie便是客户端保存sessionId信息的容器,cookie的存活一般是在用户关闭浏览器的时候死亡,当然也可以手动设置cookie的存活时间,客户端的用户可以手动设置cookie的禁用,当完全禁用cookie时session也就失去了他的作用,此时http请求将无效,系统无法正常使用,起码在jsp中是这样的。

3.实际开发中遇到的session问题

  由于http的无状态特点,session又是弥补这个缺点而生的产品,而session的处理跟计算需要开销部分量的内存跟cpu,这就为服务端增加了压力,据说tomcat的并发连接默认是200,那么为了解决这个问题很多java编写的网站会增加一个静态服务器(apache或nginx),静态服务器不用解决http无状态的问题,因此部署静态资源服务器不用处理像session这样消耗cpu跟内存的东西,进而减小了tomcat的压力。

4.如何高效进行session同步(了解即可)

  如何高效的存储session也是信息时代常碰到的问题,存在数据库,内存还是文件,存在文件跟数据都需要操作io,io效率远远低于内存的存取速度所以不会考虑,因此存在内存中是最佳选择,最好的方案便是使用分布式缓存技术(redis/memcache),将session信息独立出来是一个较好的解决办法。

此博参考:http://www.cnblogs.com/sharpxiajun/p/3395607.html

个人总结,请多多指教,勿言恶语

posted @ 2017-03-25 00:28  青春不打烊  阅读(109)  评论(0编辑  收藏  举报