会话控制

1、会话控制

首先HTTP协议具有俩大特点:

①无连接:每次链接只处理一个请求,服务器处理完客户的请求,接收到客户的应答时,即断开链接,采用这种方式可以节省传输时间。

②无状态:HTTP协议对事物的处理没有记忆性。那么再一次请求完成以后,如果后续处理需要之前的信息,就必须重新输入,这样就导致每次连接的数据量增大,请求变慢。

为了解决HTTP协议无记忆的缺陷,能够将数据持久化的保存在客户端或者是服务器端,从而让浏览器和服务器进行多次数据交换产生连续性。

2、cookie技术

——将数据持久化存储在客户端的一种技术

cookie的原理:使用浏览器访问设置cookie的页面是,cookie信息会随着响应头返回给浏览器,并且保存在浏览器中。

操作cookie

设置cookie:

setcookie(var1,var2,var3);

var1--cookie的名称'name'

var2--名称对应的值

var3--cookie的有效期(var3=-1或不设置时,关闭浏览器失效;设置time+秒数,则在当前时间点的多少秒数以后失效)

    setcookie函数还有参数4、5,可以用来控制cookie的有效访问,但是一般不用。

    在不使用参数4和5的情况下,cookie在当前目录及子目录中有效,在上层目录中无效。

例: setcookie('name','zs',time()+3600); 

相当于

$_COOKIE = [
  'name' => 'zs'  
];
使用php的超全局变量读取$_COOKIE

print_r($_COOKIE);

删除cookie

setcookie('name',null);

js控制cookie

<script>
   设置cookie:   document.cookie = “名称=值;expires=时间”

   读取cookie:   document.cookie
</script>

session技术

session会将数据保存到服务器端,安全性就可以得到保证。

session的原理:默认保存在服务器的文件当中。

设置/读取session

php使用session时,首先要使用session_start()函数来开启session。

$_SESSION 超全局变量就能设置和读取session中的内容

扫描二维码关注公众号,回复: 1915944 查看本文章
设置session
    session_start();
    $_SESSION['key'] = '动漫';    
    $_SESSION['day'] = '2018-7-2';

读取session
    session_start();
    print_r($_SESSION);

session 的作用范围

在当前网站的任何一个页面设置过session,则该网站的所有页面都能得到该session的数据。

session的有效期

浏览器关闭时,session消失

删除session

   unset($_SESSION[‘name’]);    //删除单个session

   session_destroy();           //删除所有session

cookie和session的联系

1、当浏览器访问一个设置session的页面时,服务器会随机自动生成一个session_id(字符串)。

2、返回给浏览器,并保存在浏览器的cookie当中,同时服务器中也会生成一个以该session_id为名称的文件,用来记录信息。

​3、之后每次访问该网站时,都会携带cookie中的session_id,来和服务器中的session文件名进行比对。

4、当文件名和cookie中的session_id一致时,则说明使用的是该session文件,可以从该session文件中读取数据。

猜你喜欢

转载自www.cnblogs.com/houfee/p/9266128.html