session和cookie的共同点:都是用来保存用户状态信息的机制。
访问过程:客户第一次向服务器发送请求,服务器端会产生一个sessionId,而通过cookie返回给客户端。
区别:1.存储区域不同:session存放于服务端,cookie存放于客户端
2.保存内容不同:session能够存取任何类型的数据,cookie只能保存ASCII字符串;同时cookie保存内容比session小,session大小没有限制。
3.有效期不同:cookie有效期比session长,关闭浏览器后session就会失效。如果需要长期保存用户信息则需要将cookie过期时间设大一些,由于session依赖于名为JSESSIONID的Cookie,当cookie失效时,session不能正常作用,session时长设大后容易内存溢出。
4.服务器压力不同:由于session在服务器端,并发访问用户多时,产生大量session占用内存;而cookie在客户端,不占服务器资源。
5.浏览器支持不同:cookie需要浏览器客户端支持,如果不支持,只能采用session+url地址重写来实现
ps:单个cookie保存的数据不能超过4K,一般客户端不会超过20个cookie