欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

cookie和session的详细介绍(图文)

程序员文章站 2022-03-05 23:21:49
...
本篇文章给大家带来的内容是关于cookie和session的详细介绍(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

cookie技术

cookie是浏览器端的技术,可以在浏览器上保存数据的一门技术!cookie就是指的是浏览器上保存的数据!

PHP支持cookie技术!php可以向浏览器发出指令,从而将数据保存到浏览器上!

浏览器负责保存数据,而php负责控制浏览器保存那些数据!(php在是使用浏览器上cookie技术)

保存在浏览器上的cookie数据,可以在浏览器每次向服务器请求时,都可以携带该数据,向服务器发出请求,此时服务器上的脚本就可以获得该数据!

基本使用

设置 cookie 变量,增,改,删

利用内部函数 setcookie 完成

形式:setcookie(名字,值)

cookie和session的详细介绍(图文)

取得 cookie 变量,读

使用预定义数组变量:$_COOKIE

该变量内保存所有从浏览器请求时所携带的cookie数据!

每个元素就是一个cookie变量数据!下标是名字,值,就是值!

cookie和session的详细介绍(图文)

基本原理

利用firebug的网络选项卡:

cookie和session的详细介绍(图文)

设置时,做了什么?

cookie和session的详细介绍(图文)

在响应时,服务器发送了一条指令,在浏览器上增加一个cookie变量!

cookie和session的详细介绍(图文)

浏览器接到该指令后,在浏览器上增加了一个cookie数据!

获取时,做了什么?

cookie和session的详细介绍(图文)

浏览器会将当前站点的所有的cookie在请求时都携带到服务器上!

php会自动获得到浏览器携带的cookie,形成$_COOKIE数组,用户脚本使用!

cookie和session的详细介绍(图文)

高级使用

1.cookie数据只能是字符串数据!

cookie和session的详细介绍(图文)

2.setcookie函数,可以完成增,修改,删除!

不存在,则增加,存在则修改!

删除,可以采用将值,置空的形式!

cookie和session的详细介绍(图文)

3.cookie变量的失效期

cookie数据存在有效期的概念:

默认,临时cookie。会保存到浏览器关闭!

同时,支持,增加setcookie的第三个参数,来修改cookie变量的有效期。有效期的表示方式,是一个时间戳,表示到哪个时间点,失效!

php可以通过 time()函数,获得当前的时间戳,time()增加增量的形式延长cookie时间!

cookie和session的详细介绍(图文)

此时,服务器会向浏览器发出如下指令:

cookie和session的详细介绍(图文)

网络上表示时间,都是用格林威治平时!没有时区概念的那个时间!GMT

浏览器知道cookie变量的有效期!

cookie和session的详细介绍(图文)

常用的操作:

cookie和session的详细介绍(图文)

1.cookie存在有效路径的概念

cookie变量是只在当前目录,及其后代目录才会生效!

test/下设置, test/sub/下可以访问

cookie和session的详细介绍(图文)

反过来:

cookie和session的详细介绍(图文)

那是由于该cookie:

cookie和session的详细介绍(图文)

可以更改cookie数据的有效路径:

通过setcookie的第四个参数做修改:

cookie和session的详细介绍(图文)

/ 表示站点根目录有效!整站有效!

cookie和session的详细介绍(图文)

5,cookie子域名的概念

cookie和session的详细介绍(图文)

cookie是严格区分域名的。

支持在子域名之间是可以共享的:

利用第五个参数设置

cookie和session的详细介绍(图文)

有效期,有效路径,有效子域名!

6,$_COOKIE是捕获不了当前脚本所设置的cookie变量的!

cookie和session的详细介绍(图文)

$_COOKIE是,浏览器请求时所携带的所有cookie!

当前设置的在下次使用请求才好用!

session技术,会话技术

场景:

cookie的问题

由于是数据本身是在浏览器端:

数据的安全性问题!

数据总要在请求时携带!

怎么解决,注意保持在浏览器的多次请求间共享数据!

将数据放在服务器端,同时是数据区分浏览器,在浏览器的多次请求间共享数据!

cookie和session的详细介绍(图文)

在服务器上,为来访的每台浏览器增加一个数据空间,然后为这些数据空间分配不同唯一的标识!为每个浏览器分配一个唯一的标识,该标志应该服务器端数据库空间的标识应该一一对应

要求,浏览器每次请求时携带标识,此时服务器可以获得标识,利用标识确定数据空间,但却请求的所有的数据处理,都在当前的确定的空间内完成!

将服务器分配给浏览器的唯一标识存在浏览器的cookie内,可以保证浏览器每次来时都携带!

服务器为每一个新浏览器访问(没有确定标识的浏览器),确定标识,和在服务器上生成一个唯一的数据空间!

基本使用

直接操作$_SESSION数组,就可以完成session数据的存,取!

每个session数据,就对应$_SESSION内的一个元素!对元素操作,就是对session数据做操作!

但是,session技术,包括生产session标识,开辟session数据空间,为浏览器分配session标识等等,都需要PHP的session机制支持!

因此,需要先开启session的支持,才能操作$_SESSION变量,从而去操作session数据!

开启:

session_start();

操作:

$_SESSION;

先开启后操作:

cookie和session的详细介绍(图文)

更新和删除:

cookie和session的详细介绍(图文)

基本原理

浏览器端cookie中保存的sessionID:

当前浏览器第一次对服务器发出请求时,服务器不能确定浏览器的标识

会重新生成一个唯一标识,以cookie的形式保存到浏览器端!

其中默认的cookie变量名为:PHPSESSID。

该cookie标量,也被称之为sessionID!

cookie和session的详细介绍(图文)

当浏览器拥有了sessionid这个cookie变量后,接下来的请求都会携带该ID发出请求:

cookie和session的详细介绍(图文)

服务器的端的是session数据空间

默认情况下,php,会将保存session数据的空间,生成一个文件来完成!通过文件的名称来区分属于哪个ID的!

默认的被保存在服务器操作系统的临时目录内:

cookie和session的详细介绍(图文)

大概的流程:

cookie和session的详细介绍(图文)

测试:

使用session来完成登陆标识验证:

cookie和session的详细介绍(图文)

以上就是cookie和session的详细介绍(图文)的详细内容,更多请关注其它相关文章!

相关标签: cookie session