• Cookie与Session(以php为例)


    COOKIE

    SetCookie函数

    添加cookie

    i.($name,$value,$expire,$path,$domain);

    ii.$name:cookie的名称

    iii.$value:该cookie的值

    iv.$path:中有一个关于路径的设置,比如说设置为当前路径,那么意思就是在服务器只有当前路径的.php文件才能读到cookie

    v.$domain:有效域名,该cookie只在该域名下有效(可以访问)

    vi.$expire:该cookie的过期时间过期后,该cookie会被自动删除

    删除Cookie

    让cookie文件过期即可

    在php中setcookie之前是不能有输出的(echo )

    修改cookie

    重新设置cookie

    路径要是不给,那么设置的就是当前路径,时间要是没有给,默认浏览器关闭时自动销毁

    查询cookie

    使用$_COOKIE[Cookie名称]

    Session

    1.什么是session?

      a)一种会话技术

       b)保存在服务器的一个文件,文件当中保存着之前访问的信息

       c)Session的查询是基于sessionid号的

    2.Session的原理

      a)用户第一次来访问服务器的时候,把登陆信息存储到服务器上的一个Session文件当中,并且产生一个sessionid号,并且会向客户端浏览器发送一个产生cookie文件的请求,将该sessionid号存储到该cookie当中,用户第二次过来访问服务器的时候,携带拥有sessionid号的cookie一起来访问服务器,服务器根据cookie当中的sessionid号找到对应的session文件,从而获取到对应信息.

       c)Session的查询是基于sessionid号的

    3.Session的操作:

    a)添加sesion

    Session的声明与使用

    Session的设置不同于Cookie,必须先启动,在PHP中必须使用session_start()

    session_start()函数的语法格式如下

    Bool    session_start(void)

    注意:session_start()函数之前不能有任何输出

       Session以数组的形式使用

    如:$_SESSION['session名']

    正如这般

    自己没有在服务器上找到session文件,还以为是出了啥问题

    session_save_path()能够存储session文件的位置

    这个函数必须要在session_start()之前

    b)删除session

      晴空数据     $_SESSION=NULL;

                      $_SESSION=array();

                          unset

    删除cookie文件

    销毁session文件 

    session_destroy

    c)修改session

    d) 查询session

    默认情况下禁用cookie,session是不能使用的(阻止网站使用第三方文件.cookie),客户端没有含有sessionid号的cookie了,服务器端会不断地创造新的cookie

    session是基于cookie的,sessionID是保存在cookie中的。

    解决方法:

               i.我们可以在页面和页面之间用get传参?phpsessid=

                在这里我们不需要$_GET,$_REQUEST可以直接获得,自动获得这个参数!传递的参数不需要手动接收,

          也就是

               退出的时候类似。

                然而session_name()=session_id()

                太长,可以用SID来代替(没有禁用是空值)

               session.use_only_cookies=1--->0

     Cookie与Session的区别         

             Cookie是保存在浏览器中的

             Session是保存在服务器中

              Cookie设置值的时候不能直接对数组$_COOKIE进行设置,而是通过函数setcookie对cookie进行设置,而session直接使用数组设置即可,但是前提是必须要开启session_start()

              cookie删除的时候需要使用setcookie对cookie的值设置为过期,而session直接将$_SESSION请空即可

    session_start细节

    当执行session_start()的时候 php会自动isset($_COOKIE['PHPSESSID']) true 的话 会去session池里寻找这个session是否存在,存在的话取出session,否则session失效 false 话会在session池里自动生成一个session,然后把COOKIE里PHPSESSID的值设置为 session_id

            

  • 相关阅读:
    白话OAuth2用户认证及鉴权标准流程
    QQ登录功能之如何获取用于本地测试的APPID
    Spring Security框架下实现两周内自动登录"记住我"功能
    Spring Security之多次登录失败后账户锁定功能的实现
    结合RBAC模型讲解权限管理系统需求及表结构创建
    将Swagger2文档导出为HTML或markdown等格式离线阅读
    结合参数接收响应转换原理讲解SpringBoot常用注解
    详解Spring Security的formLogin登录认证模式
    java应用性能调优之详解System的gc垃圾回收方法
    参与国际化项目需遵循的java命名规范
  • 原文地址:https://www.cnblogs.com/clearlove/p/4954922.html
Copyright © 2020-2023  润新知