1、cookie
cookie数据保存在客户端(设置过期时间expires则同时保存在磁盘上,否则只保存在内存中),可被客户端脚本修改,当向服务器发送请求时,(在已经开启会话的前提下sesseion_start)会携带本地的cookie信息(假如有的话)一起发送出去,cookie是不安全的,单个cookie在客户端的大小显示是3k。
2、session
session数据保存在服务器,同时服务器发送sessionid给浏览器并在浏览器中生成名为jsessionID的输出cookie(称为session cookie,保存在浏览器内存中,如果服务器对该cookie设置了expires则同时会保存到磁盘上),
如果没有设置session cookie过期期限则session是针对某一次会话而言,当该次会话结束时(关闭浏览器),相应的session cookie也就消失了(因为是保存在内存当中)。session基于cookie和url重写,默认使用cookie,当浏览器禁用cookie时,采用url重写的方式向服务器传递sessionID。
总结:session只在浏览器端存储一个标识该session的串作为cookie,可以通过这样来设置session的过期期限setcookie(session_name(), session_id(), time() + $lifeTime, "/");另外服务器端设置cookie(setcookie())必须在有内容输出之前执行,否则会失效!!!