浅谈 session,cookie

cookie是客户端访问服务器,由服务器产生存放在客户端的文件。cookie文件有cookie名称,cookie ID组成。cookie里面有客户端生成的数据。当浏览器再次访问服务器的时候发送数据的时候会把cookie文件发送。服务器接收cookie会把里面的数据读取到$_COOKIE全局数组里。不过cookie可以被仿造。所以不够安全。

session文件是存放在服务端里的文件,里面包含一些服务端生产的数据。使用session的时候要session_start()开启回话。

开启的时候会干下面这几件事。

<?php

session_id('123');

session_name('aa');

session_start();

$_SESSION['name']='123';

session_id('121');

 

<?

1,session_start()会获取session_name()://系统默认是SESSIONID,获取session_id():一个系统默认生成的随机字符串。

2,在session_start()前,session_name():session对应的cookie名称,与session_id():session文件对应的ID是可以设置的。

3,获取到session_name()与session_id()后。如果服务端没有收到前端发送的名为aa,值为123的cookie则会创建这样的一个cookie发送到前端。在服务端如果没有sess_123这样的session文件则会创建。

如果该session文件存在。则会把该文件的数据读取到$_SESSION这个全局变量中。

 

4,session_start(); 开启后,如果使用了session_id('121'), 会在服务端生产一个sess_abc的session文件。 如果预定义全局数组$_SESSION中的数据有变动,则会把$_SESSION中的数据存储到sess_121的session文件中,覆盖里面原有的数据。

 

注:session_start()开启后会检查有没有收到客户端发来的对应名称的cookie,如果有以该cookieID去在服务端生产session文件,如果该session文件存在,就把session文件中的数据读取到$_SESSION中。如果没有收到客户端发送对应名称的cookie,则在服务端以session_id()去生成一个session文件。并把session文件中的数据读取到$_SESSION中。

session_start()session开启后。在程序结束前程序会把$_SESSION里的数据存在sess_session_id()的session文件中,并覆盖里面的数据,如果该文件没有就生成新的session文件再存放数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间四月天美丽春色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值