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

    会话技术

        http属于无连接,无状态的协议,服务器无法识别,同一个客户端同一个浏览器的这次请求与上一次请求是否来自同一客户端。每一次请求都是一次会话。由于http协议的无连接,无状态的特性,所以有了会话技术来弥补此"缺点"。

        会话技术就是通过某种方式能够识别,请求来自哪一个客户端。

    会话技术分cookie与session

    cookie技术

    cookie    甜点(小点心)

        利用http协议将数据保存在客户端电脑上。

    http协议实现cookie

    利用header('set-cookie:名=值');

    示例:服务器php代码

    客户端cookie数据

    setcookie函数

    setcookie('名','值',【过期时间【,路径【,作用域】】】)

    示例

    主机:表示是哪个服务器保存在客户端的cookie数据

    路径:指是服务器的那个目录的文件保存在客户端的cookie数据

    过期时间:如果不指定,表示当前会话(浏览关闭之前一直存在)

    指定有效时间

    setcookie(name,value,time);

    说明:

        time是一个时间戳,以时间原点来起点。

    示例:

    读取cookie

    $_COOKIE系统预设置变量

     

    cookie的执行原理

    提示:

        客户端携带数据是http协议自动完成的,服务器端数据的写入$_COOKIE中也是http协议自动完成。

    路径

        默认哪个脚本文件设置的cookie,客户端中cookie数据中主机就是此脚本文件所在的目录。

        默认cookie只能向上访问,不能向下访问。

    示例1:

        设置cookie的文件在20151229/code/01demo_cookie.php

        读取cookie的文件在20151229/01demo_read_cookie.php

        此种方向读取是不可以

    示例2:

        设置cookie的文件在20151229/code/01demo_cookie.php

        读取cookie的文件在20151229/code/son/01demo_son_read_cookie.php

        此种方向读取是可以

    一般情况cookie是整站有效。

    语法:

        setcooke(name,value,expire,'/');

    示例:

    跨域

    域名:

    顶级域名        

        .cn        表示中国

        .us        表示美国

        .hk        表示香港

        .jp        表示小日本

     

    一级域名

        gov.cn        政府部门

        mil.cn        军事部门

        edu.cn        教育机构

        org.cn        非盈利组织

     

    二级域名

        news.baidu.com

        zhaidao.baidu.com

        tieba.baidu.com

        music.baidu.com

    cookie特点

        cookie只能保存字符串。

        由于[]对于php来说,就是一个定义数组的语法,所以在set_cookie在cookie的名后加[],作为cookie,当cookie被返回到服务器,php会将其解析成数组

    示例:

    cookie的总结

        cookie是存储在客户端的数据,那么此数据不安全(用户可以任意更改),所以由不安全,所以不会使用cookie来保存重要的数据。

     

    session技术

        会话技术的一种,session是以cookie为基础,将一个标识通过cookie写到客户端,再在服务器以此标识为依据存储一个数据在$_SESSION中。

    类比:

        将一个标识通过cookie写到客户端 相当于银行为用户发放一个卡号。

        以此标识为依据存储一个数据在$_SESSION中 相当于在银行为用户开记一个账户,账户里写金额信息。

    PHP中session有一套独立的机制

    session的使用

    手动session

    开启session

    session_start();

    语法:

    向session中写数据

    $_SESSION,就是一个数组,用于存储session中的数据,只有在session机制开启之后才会存在。

    读取数据

    在手动session中,对session的任何操作都必须先开启session

    原理:

    自动session

     

    删除session

    语法:

        session_destroy();

    删除当前进程中的session

    第1步:

        在admin/template/top.html的退出链接的herf属性设置如下:

    第2步:

        由于退出按钮是以get方式向privlege.php文件中传递action,但是登陆界面数据的传递是使用post方式,冲突, 所以使用$_REQUEST代替。

    第3步:

        由于退出也属于用户行的,所以在privilege.php文件中进行判断

     

  • 相关阅读:
    socket是什么
    0,1,2 代表标准输入、标准输出、标准错误
    认识程序的执行:从高级语言到二进制,以java为例
    97 条 Linux 运维工程师常用命令总结[转]
    rsync 参数配置说明[转]
    shell 脚本学习之内部变量
    ansible 入门学习(一)
    python 管理多版本之pyenv
    CentOS6 克 隆
    yum 本地仓库搭建
  • 原文地址:https://www.cnblogs.com/nyxd/p/5360214.html
Copyright © 2011-2022 走看看