session
什么是session
?php
session
在计算机中,尤为在网络应用中,称为"会话控制";具体到web
中的session
指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所通过的这段时间,也就是用户浏这个网站所花费的时间。所以从上述的定义中能够看到,session
是一个特定的时间概念。为何要使用session
?web
HTTP
协议是一种无状态的协议,即同一个客户端的本次请求和上次请求没有对应关系,http服务器并不知道这两个请求来自同一个客户端;优势在于减轻服务器的压力,缺点在于每次请求会传输大量重复的内容信息session
提供在PHP
脚本中定义全局变量的方法,使得这个全局变量在同一个session中对于全部的PHP
脚本文本内都有效。因此,session
是基于HTTP
服务器的用于保持状态的方法;session
容许经过将数据存储到HTTP
服务器中,以在整个用户会话过程当中保持该数据;因此,session
不只是一个时间概念,还包括了特定的用户和服务器;session
的工做原理sql
session_id
函数读取此标识符。为PHP
应用程序启用会话状态时,将检查应用程序中每一个页面请求是否有浏览器发送的sessionID
值。若是未提供任何sessionID
值,则PHP
将启动一个新会话,并将该会话的sessionID
值随响应一块儿发送到浏览器。sessionID
值存储在cookie
中,也能够实如今URL
中存储sessionID
sessionID
值来发送请求,会话就被视为活动的,若是特定会话的请求间隔超过指定的超时值(以秒为单位),则该会话被视为已过时。若是使用过时的sessionID
值发送的请求将生成一个新的会话和session
相关的函数chrome
/* * session_start * 描述:启动新会话或者重用现有会话 * 语法:bool session_start([array $options = []]) * ---在服务器上建立了一个sessionID,并建立了一个存储session的文件 * 说明: * A. $options参数是一个关联数组,若是提供的话,则会用其中的项目覆盖"会话配置"中的配置选项; * B. 若是经过GET或者POST方式,或者使用cookie提交了会话ID,则会重用现有会话 * * session_id * 描述:获取/设置当前会话ID * 语法:string session_id([string $id]) * 说明: * A. 若是指定$id参数的值,则使用指定值做为会话ID * B. 若是设置$id参数的值,必须在调用session_start()函数以前调用session_id()函数 * * session_name * 描述:读取/设置会话名称 * 语法:string session_name([string $name]) * 说明: * A. 若是指定$name参数,session_name()函数会更新会话名称,并返回原来的会话名称; * B. 若是指定$name参数,必须在调用session_start函数以前调用session_name()函数 * * session_destroy * 描述:销毁一个会话中的所有数据 * 语法:bool session_destroy() * * chrome浏览器cookies存储地: * ~/Library/Application Support/Google/Chrome/Default/Cookies * 将Cookies加扩展名sqlite,而后用sqlite工具打开Cookies */
PHP
配置中session
片断数组
/* * 在/Applications/XAMPP/etc/php.ini文件中能够查看下列片断: * * session.auto_start(boolean) * 描述:session.auto_start指定会话模块是否在请求开始时自动启动,默认为0(不启动),通常不进行修改该配置; * * session.name(string) * 描述:指定会话名以用作cookid的名字,只能由字母数字组成,默认为'PHPSESSID'; * * session.save_handler(string) * 描述:定义用来存储和获取与会话关联的数据的处理器的名字,默认为files,即文件; * * session.save_path(string) * 描述:定义传递给存储处理器的参数,若是选择默认的files文件处理器,则值则是文件的路径; * * session.gc_maxlifetime(integer) * 描述:指定过了多少秒以后数据就会被视为"垃圾"并被清除; * * session.gc_probability(integer)、session.gc_divisor(integer) * 描述:定义在每一个会话初始化时启动gc进程的几率,此几率经过gc_probability/gc_divisor计算,值为1000,表示为千分之一 * */
cookie
什么是cookie
?浏览器
HTTP cookie
也叫Web cookie
或者浏览器cookie
,是服务器发送到用户浏览器并保存在浏览器上的数据,它会在浏览器下一次发起请求时被携带并发送到服务器上;HTTP cookie
是HTTP
标头的组成部分;session
是存储在服务器端,cookie
是存储在浏览器端cookie
的做用服务器
与cookie
相关的函数cookie
/* * setcookie函数 * 描述:设置cookie * 语法:bool setcookie(string $name[, string $value = ""[, int $expire = 0[, string $path = ""[, string $domain = ""]]]]) * 说明: * A. $name参数用于指定cookie名称; * B. $value参数用于设置cookie值; * C. $expire参数用于设置cookie的生命周期(Unix时间戳); * D. $path参数用于设置服务器上可用cookie的路径;若是设置为"/",则表明在整个域名内都有效, * 若是设置为"/foo/",则仅表明在域名内的/foo目录及其子目录内有效; * E. $domain参数用于设置cookie可用的域名范围(包含子域名); * * 注意:会话期cookie是指浏览器关闭以后会被自动删除,也就是它仅在会话期间有效; * 会话期cookie不须要指定过时时间(Expire); * * 持久cookie:指定一个特定的过时时间(Expire); * */