原创转载请注明出处:http://agilestyle.iteye.com/blog/2367166
Cookie
Cookie可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些Cookie,如果Cookie很多,则无形地增加了客户端与服务端的数据传输量,而Session的出现正是为了解决这个问题。
Session
同一个客户每次和服务端交互时,不需要每次都传回所有的Cookie值,而是只要传回一个ID,这个ID是客户端第一次访问服务器时生成的,而且每个客户端是唯一的。这样每个客户端就有了一个唯一的ID,客户端只要传回这个ID就行了,这个ID通常是NAME为JSESSIONID的一个Cookie。
工作方式
Cookie和Session都可以跟踪客户端的访问记录,但是它们的工作方式显然是不同的。
- Cookie通过把所有要保存的数据通过HTTP的头部从客户端传递到服务端,又从服务端再传回到客户端,所有的数据都存储在客户端的浏览器里,所以这些Cookie数据可以被访问到,甚至可以被修改,所以Cookie的安全性收到了很大的挑战。
- Session的安全性要高很多,因为Session是将数据保存在服务端,只是通过Cookie传递一个SessionID而已,所以Session更适合存储用户隐私和重要的数据。
Cookie的安全问题
如果使用Cookie,可以很好地解决应用的分布式部署问题,大型互联网应用系统的一个应用有上百台机器,而且有很多不同的系统协同工作,由于Cookie是将值存储在客户端的浏览器,用户每次访问都会将最新的值带回给处理该请求的服务器,所以也就解决了同一个用户的请求可能不在同一台服务器处理而导致的Cookie不一致的问题,但是这种处理方式会带来很多其他问题
- 客户端Cookie存储限制(Cookie个数的限制为50个, 总大小不超过4KB,超过限制会出现Cookie丢弃)
- Cookie管理的混乱
- Cookie的安全性
解决思路:分布式Session框架(结合Cookie和Session)
Session配置的统一管理
Cookie使用的监控和统一规范管理
Session存储的多元化
Session配置的动态修改
Session加密key的定期修改
充分的容灾机制,保持框架的使用稳定性
Session各种存储的监控和报警支持
Session框架的可扩展性,兼容更多的Session机制和wapSession
跨域名Session与Cookie如何共享的问题。现在同一个网站可能存在多个域名,如何将Session和Cookie在不同的域名之间共享是一个具有挑战性的问题(要实现两个域名下的Session同步,必须将同一个sessionID作为cookie写到两个域名下)。
Reference
深入分析Java Web技术内幕 许令波 著
相关推荐
这是一份关于cookie和session的知识文档,有关于cookie是什么,图解,cookie对比session有哪些不好,session是什么图解
cookie和session的学习文档
一、cookie机制和session机制的区别 ...... 二、会话cookie和持久cookie的区别 ......
cookie 和 session 的异同,同时也解释了怎么进行共享和集群
asp.net写的一个cookie和session登陆小实验,项目简单明了,都加上了备注。
里面包含BS和CS(软件/网页)2种的代码实例,希望能帮到大家
很好用的cookie和session的区别
cookie和session示例,详情请看:https://blog.csdn.net/yuzhiqiang_1993/article/details/81232914
javaweb cookie session
本文详细的描述了java开发中Session和Cookie的区别,更加有利于读者的理解
1、Cookie和Session简介与区别Session信息是存放在server端,但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪Cookie是完全保持在客户端的如:IE firefox...
深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很...
JavaWeb基础-Cookie和Session的简单使用案例
介绍Cookie和Session的区别,适合做技术开发人员
Servlet对Cookie和Session的管理:会话跟踪、会话浏览、过滤器、事件监听、以及不依赖浏览器的后台跟踪和浏览源码。
测试的过程中,经常会有这样的疑惑,什么是Cookie,什么是Session什么是Token,三者的区别又是什么,又是怎么使用的呢,这个文档跟大家详细介绍下三者的区别与使用
cookie和session.docx
Cookie和Session区别用法.pdf
用java运用cookie和session,非常简单
Cookie和Session区别用法