美文网首页
Session与Cookie

Session与Cookie

作者: 痴人会说梦 | 来源:发表于2017-06-05 18:55 被阅读17次

    什么是SESSION

    SESSION在计算机中,尤其是在网络应用中,称为"会话控制"
    具体到Web中的SESSION指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经历的这段时间, 也就是用户浏览这个网站所花费的时间.因此从上述的定义中可以看到,SESSION是一个特定的时间概念.

    为什么使用Session?

    1.HTTP协议是一种无状态的协议;即同一个客户端的本次请求和上次请求没有对应关系,HTTP服务器并不知道这两个请求来自同一个客户端
    2.SESSION提供在PHP脚本中定义全局变量的方法,使得这个全局变量在同一个SESSION中对于所有的PHP脚本文件内都有效,所以,SESSION是基于HTTP服务器的用于保持状态的方法
    3.SESSION允许通过将数据存储在HTTP服务器中,以在整个用户会话过程中保持该数据;所以,SESSION不仅是一个时间概念,还包括了特定的用户和服务器.

    session_start();
    $_SESSION["username"]="zhangsan";
    
    session_start();
    echo $username;
    

    SESSION的工作原理

    session_id

    与SESSION相关的函数

    session_start
    描述:启动新会话或者重用现有会话
    语法: bool session_start([array $options = []])
    说明:A:$options参数是一个关联数组,如果提供的话,则会用其中的项目覆盖"会话配置"中的配置选项
    B:如果提供GET或者POST方式,或者使用cookie提交了会话ID,则会重用现有会话.

    <? php
    header('content-type:text/html;charset:utf-8');
    session_start();  //开启session会话
    $_SESSION["username"]="zhangsan"; //存储session数据
    
    

    session_id
    描述:获取/设置当前会话id
    语法:string session_id([string $id])
    说明:
    A:如果指定$id参数的值,则使用指定值作为会话id
    B:必须在调用session_start()函数之前调用session_id()函数
    <? php
    header('content-type:text/html;charset=utf-8');
    session_start(); //开启session会话
    $_SESSION["username"]="zhangsan"; //存储session数据
    echo "sessionId是:",session_Id();

    session_name
    描述:读取/设置会话名称
    语法:string session_name([string $name])
    说明:
    A:如果指定$name参数,session_name()函数会更新会话名称,并返回原来的会话名称;
    B:必须在调用session_start()函数之前调用session_name()函数;
    <? php
    header('content-type:text/html;charset=utf-8');
    session_name(''hello_");
    session_start();  
    

    session_destory()
    描述:销毁一个会话中的全部数据
    语法:bool session_destory(void)
    测试发现并不会马上销毁文件,其实跟浏览器的配置有关.

    PHP配置中的SESSION片段

    session.auto_start(boolean)
    描述:session.auto_start指定会话模块是否在请求开始时自动启动.默认为0(不启动)
    session_name(string)
    描述:指定会话名以用做cookie的名字,只能由字母数字组成,默认为PHPSESSIONID;
    session.save_handler(string)
    描述:定义用来存储和获取与会话关联的数据的处理器的名字,默认为files;
    session.save_path(string)
    描述:定义传递给存储处理器的参数,如果选择默认的files文件处理器,则值是文件的路径
    session.gc_maxlifetime(integer)
    描述:指定过了多少秒之后数据就会被视为"垃圾"并被清除
    session.gc_probability(integer)| session.gc_divisor(integer)
    描述:定义在每个会话初始化时启动gc(garbage collection ,垃圾回收)进程的概率,此概率通过gc_probability/gc_divisor计算;

    Cookies

    什么是Cookie

    HTTP Cookie(也叫Web cookie或者浏览器cookie)是服务器发送到用户浏览器并保存在浏览器上的数据,它会在浏览器下一次发起请求时被携带并发送到服务器上;HTTP Cookie是HTTP标头的组成部分.

    Cookie有什么用

    1.会话状态管理(如用户登录状态\购物车)
    2.个性化设置(如用户自定义设置)
    3.浏览器行为跟踪(如跟踪分析用户行为)

    与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可用的域名范围(包含子域名);

    相关文章

      网友评论

          本文标题:Session与Cookie

          本文链接:https://www.haomeiwen.com/subject/lyhwfxtx.html