session和cookie的区别和联系

参考答案

1. 区别

它们都是使用键值的方式来为客户端保存一些服务器的信息,区别在于:

  • cookie是将这些信息保存在浏览器端,session是将这些信息保存在服务器端的。

  • 每个客户端为某一网站保存的cookie个数和大小是有限制的,个数一般是30~50/domain,大小一般是4k/cookie左右; 而服务器的每个session保存的信息理论上是无限的,仅受限于服务器的内存容量。不过可以想到服务器要同时很多客户端请求,每个session虽然占用的内存不多,但多个客户累积起来就非常可观了。所以session中不建议存储过多信息,可以选择将数据保存在数据库或缓存当中。

  • 安全性上来讲,因为cookie会随着每次请求传递,被截获的风险很大,另外cookie因为是保存在客户端的,因此泄露的可能更高。

2. 联系

session 与客户端浏览器的对应关系通过cookie来实现: 当服务器为某一客户端首次创建session时,会将一个JSESSIONID=唯一值的会话cookie返回给客户端浏览器,当浏览器向此服务器发送接下来的请求时,会携带此JSESSIONID=唯一值的cookie,服务器从而可以通过它找到此客户端对应的session。


results matching ""

    No results matching ""