7、PHP的Cookie与Session操作
PHP的Cookie与Session操作
一、什么是Cookie?
Cookie是存储在客户端的一段缓存信息,一般包括服务器发送给客户端的身份验证token/Session等,由于Http无状态、无连接的特性,每当有客户端想与服务器进行数据请求等操作时,就很有可能有伪装的hacker冒充正当人员向服务器发送请求来做坏事。因此,为了保证通信的安全性,大部分的网络架构都设计服务器发送给客户端一串唯一的加密过的token字符串/或者Session,这个token/Session是有有效时间限制的(一般只在一个请求和一个响应中有效)。这样,每当客户端向服务器发送请求时,就可以携带这个服务器发送的token/Session字符串,来证明自己身份的正当性了。
什么是Session?
Session是一种会话管理技术,服务器将每对连接会话所产生的键值信息保存到一个名为session id(唯一随机字符串)的缓存文件中,并将这个session id返回给客户端在Cookie中保存,在这段会话连接中客户端向服务器发送数据请求时会携带这个session id,服务器根据session id来对会话数据进行访问。
php session 有效期
php的session有效期默认是1440秒(24分钟),如果客户端超过24分钟没有刷新,当前session会被回收,失效。
当用户关闭浏览器,会话结束,session也会失效。可以修改php.ini的session.gc_maxlifetime来设置session的生命周期,但并不能保证在超过这一时间后session信息立即会删除。因为GC是按机率启动的,可能在某一个长时间内都没有被启动。那么大量的session在超过session.gc_maxlifetime后仍然有效。
二、PHP的Cookie相关操作
1 | <-----服务器发送Cookie-----> |
三、PHP的Session相关操作
1 | session_start(); #此php页面开启session机制,下发和验证session;也可以配置文件开启此功能,可参考手册 |