Session与Cookie均可以进行会话跟中,可是实现原理不太同样。java
1.从存取方式上比较:跨域
Cookie只能保存ASCII字符串,若是须要存取Unicode字符或者二进制字符,须要进行UTF-8,GBK等方式的编码,Cookie不能直接存取java对象,并不适合用来存取复杂的信息。浏览器
Session能够存取任何类型的数据,包括javabean乃至任何的java类和对象。能够把session看作是一个java的容器。安全
2.从隐私安全上比较:服务器
cookie是保存在客户端浏览器上面的,对客户端是可见的,存在安全隐患;session则是保存的服务器端,对客户透明,不存在敏感信息泄露问题。cookie
3.从有效期上比较:session
cookie的有效期能够经过设置Cookie的maxAge属性来修改;session则是在关闭浏览器后就会失效。并发
4.从对服务器的负担上比较:网站
cookie是保存在客户端浏览器上的,对服务器的负担比较小;session是保存在服务器上的,服务器针对每一个用户建立一个session,若是并发访问的用户很是多,会消耗大量的内存。因此,若是是面对并发访问多的网站,建议使用cookie。编码
5.从浏览器支持上比较:
cookie是须要客户端浏览器支持,不然没法跟着会话,如WAP上的应用;针对客户端不支持cookie的状况,能够使用session以及URL地址重写来实现会话跟踪。
6.从跨域名商比较:
cookie支持跨域名访问;session不支持,仅在他所在的域名内有效。
若是有必要的话,同时使用cookie跟session可能会产生比较好的效果。