zoukankan      html  css  js  c++  java
  • php_会话技术— cookie

      我们访问网站走的是HTTP协议,协议具有无连接无状态的特性,对事物的处理不具有记忆能力,即每次请求不会记录用户的访问行为。

       我们在web项目中,很多时候需要将会话数据持久化记忆存储,以便后续的程序能够随时调用和使用,比如用户的登录等。

      浏览器多次请求同一台服务器时,将数据持久化存储的一种技术,就是会话技术。

      会话技术的分类有COOKIE和SESSION。

      cookie:允许服务器将数据持久化存储在浏览器端的一种技术

      

      分析原理图说明:
      1)浏览器要允许服务器将数据储存到浏览器端;
      2)如果浏览器已经存储了某台服务器的COOKIE数据,那么在接下来的请求中,都将携带上这些数据去请求服务器

      cookie操作

      COOKIE数据本质上也是数据,基本的操作也是增删改查。

      添加:setcookie()。

      我们可以在浏览器COOKIE会话数据区查看到cookie信息。

      

      修改cookie:名不变,值改变。

      

      删除COOKIE数据

      

      COOKIE数据的获取(查询)

      

      COOKIE数据区和$_COOKIE数组变量之间的关系:

      (看不清图片可将网页放大,或将图片另存到本地查看)

      

      通过分析原理图:
      1)COOKIE数据区是在浏览器端;
      2)$_COOKIE变量会在请求之后程序执行之初初始化一次;
      3)Setcookie时并没有直接去操作$_COOKIE变量,而是在响应时告诉浏览器接下来要去保存一条COOKIE数据到浏览器端的会话数据区。

      COOKIE数据的属性设置
      Setcookie(名,值,有效期,有效路径,有效域,是否安全传输,HTTPONLY)
      有效期:通过第三个参数设置有效期。
      当我们给0值或者不给值的时候表示默认的有效期。
      默认的有效期为一个会话周期:从访问到浏览器关闭。

       

      特殊用法:我们可以通过设置过期的时间来删除一个COOKIE数据

    setcookie('age','45',time()-1);

      有效路径:通过第四个参数设置。
      不设置或者设置为空字符串为默认情况。
      默认情况是在当前目录及当前目录的子目录下有效。

      

      有效域:通过第五个参数设置。
      不设置或者设置为空字符串为默认情况。
      默认情况表示当前域名下有效。

      

      是否安全传输:通过第六个参数设置。
      不设置或者设置为false表示默认情况。
      默认情况是http和https下都能获取到COOKIE数据。

    setcookie('age','45',0,'','',false);

      HTTPONLY:通过设置第七个参数来设置。

       不设置或者设置为false为默认情况。

      默认情况COOKIE数据还能被其他脚本语言所获取。

      测试通过js获得COOKIE数据:

       

      我们通过第七个参数来设置,禁止获取:

      

      

      COOKIE技术的局限

      1)数据存储在浏览器端,安全性低。

       2)如果有海量的会话数据,浏览器每次请求都会携带上这些COOKIE数据,将大量占用带宽。

      我们可以通过SESSION技术解决上述局限。

      附:php_会话技术 — session

  • 相关阅读:
    实验12——java取整、猜数和猜拳
    实验11——java线程模拟卖票
    实验10—— java读取歌词文件内容动画输出
    实验09——java基于TCP实现客户端与服务端通信
    JavaSE第十四天
    javaSE第十一天
    JavaSE第十天
    JavaSE第十天
    JavaSE第九天
    JavaSE第八天
  • 原文地址:https://www.cnblogs.com/bk233/p/7381046.html
Copyright © 2011-2022 走看看