session和cookie深度解析
1 为什么需要session和cookie?
web系统的发展经历了三个阶段:
web1.0:强调资源共享
web2.0:强调交互。
人与终端的交互,服务器需要知道人当前操作处于哪个阶段,此时设计上就需要实现状态记录。
通过http协议就引入了session和cookie来实现状态的记录。
web3.0:强调双赢。
类似现代的自媒体,就是双赢的一种状态。
2 session和cookie的特征:
session和cookie都是由服务器生成的。
session和cookie都是键值对应的,即都是用来存储状态值的。
session和cookie是存储在服务器的,cookie是会返回给客户端的,有客户端保存。
一般来说,sessionID(服务器用来读取session对象的标识)会以类似于cookie的形式返回给客户端。sessionID本身是不携带数据的,都是返回给服务器后由服务器解读出数据。
存储session的方式有很对,可以是图片,也可以是文件
3 session和cookie生命周期:(存活周期就是,同一个id,如果在规定范围内没有访问或使用,则该id就会失效)
浏览器在发送请求时,会自动将客户端存活的cookie封装在请求头中发送。
cookie的生命周期和两个因素有关:
第一个:cookie本身的存活周期:是由服务器生成的cookie时所指定的。
第二个:客户端是否保存了cookie。客户端是否保存cookie只对当前客户端自身受影响,不会对其它客户端有影响。
session的生命周期也是和两个因素有关:
第一个:服务器对于session对象的存活周期的设置。
第二个:客户端进程是否关闭;要注意的是,客户端进程关闭,并不能说明session不能使用。
4 session和cookie都是有作用域的。
指目录,指域名。(这里就不做解释了)