首页 > 试题广场 >

cookie、session分别用来做什么的,有什么关系?

[问答题]
cookie、session分别用来做什么的,有什么关系?
1. cookie用来在客户端存储用户信息,session用来在服务器端存储用户数据,均可用于户跟踪用户状态。

2. 由于存放在服务器端,session较存放在客户端的cookie来说更为安全,用户验证等重要信息一般存放于session,但cookie也可以加密来提高安全性。

3. cookie在使用脚本或用户手动删除前永久保存,最大一般为4KB。session在会话期间保存,当访问增多会加重服务器负担。

4. session的实现需要cookie支持:session依赖session ID实现,而session ID存放于cookie,因此,禁用cookie之后session也会失效。但可使用其他方法实现,如:在URL中传递session ID。

5. session在服务器端可存放于文件(默认)、数据库或内存。

6. session支持各种类型对象,cookie只保存字符串。


发表于 2017-08-21 15:36:14 回复(0)
Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式
发表于 2018-01-15 11:02:25 回复(0)

Session:因为http协议本身是无状态的,但是往往网站的业务又需要维护用户状态信息。那么session是用来在服务器端为一个固定用户的一个会话创建一个sessionid。通过这个session在服务器端和客户端之间的传递来维持会话。Session的失效的情况有:超过一定时间服务器端没有接收到请求(tomcat默认是30分钟),或者客户端的浏览器实例关闭。

       既然是维持会话状态,那一定客户端也要维持这个sessionid,这里就用到了cookies。而且这个cookies往往是没有过期时间的,所以不会持久化到磁盘,而是存放在内存中,就由浏览器实例来管理。客户端发送请求的时候,所谓的SESSINOID参数有正是在cookies这个头里面的。

       以上是sessioncookies的关系。  

       但是cookie的功能又不完全是为了配合session的。很多网站会利用cookies做很多的业务,比如购物车,个人喜好等。往往这些cookies有一定的过期时间,所以必须要保存在磁盘中去,其实想想服务器端一定也会持久化这些信息,才能达到两者之间的交互。

发表于 2017-02-23 19:18:42 回复(0)
一个本地存储,一个作为外域存储
发表于 2017-08-24 15:47:59 回复(0)