1、什么是状态管理?
将浏览器和服务器之间多次交互当作一个整体,并且将多次交互设计到的数据保存下来。
如何进行状态管理?
(1)客户端状态管理,将数据保存在客户端(浏览器)。
(2)服务器端状态管理,将数据保存在web服务器端。
2、什么是cookie?
cookie是客户端的状态管理技术。
当浏览器访问服务器的时候,服务器可以将少量的数据以set-cookie消息头的方式发送给浏览器,浏览器会将这些数据保存下来。
当浏览器再次访问的时候,会将之前保存下来的数据以cookie消息头的方式发送给服务器。
注意:有几个cookie,就有几个set_-cookie消息头
3、Cookie的生存时间?
默认情况下,浏览器会将cookie保存在内存里面,只要浏览器不关闭,cookie就会一直存在。
4、Cookie的限制?
cookie可以被用户限制。
因为cookie是保存在浏览器端,不安全,对敏感数据需要加密处理。
只能保存少量的数据,(大约是4K)
Cookie的个数也有限制。(大约300个)
Cookie只能保存字符串,对象、集合、数组都不能保存。
5、什么是session?
是服务器端的状态管理技术
当浏览器访问服务器时,服务器会创建一个session对象(该对象有一个唯一的ID号,称sessionId)
6、Session的超时?
服务器会将空闲时间过长的session对象删除,大部分服务器默认的时间是30分钟。
Session的优点:
session相对于安全,因为所有的状态是写在服务器端的
session能够保存更加丰富的数据类型。
session能够保存的数据更大,理论上是没有限制的。
session 没有被禁止的问题。
Session的缺点:
session会将数据保存在服务器端,对服务器资源的占用比较大,cookie是将数据保存在浏览器端,对服务器没有压力。
session默认情况下,会将sessionid以cookie的方式发送给浏览器,浏览器会将session保存到内存中,如果浏览器关闭,浏览器发送请求时就没有sessionId,
服务器端的session对象就找不到了。