导图社区 会话技术
这是一篇关于会话技术的思维导图,会话简单理解为:用户打开一个浏览器,点击多个超链接访问服务器的web资源,然后关闭浏览器,整个过程称为是一次会话。
社区模板帮助中心,点此进入>>
互联网9大思维
安全教育的重要性
组织架构-单商户商城webAPP 思维导图。
个人日常活动安排思维导图
域控上线
西游记主要人物性格分析
17种头脑风暴法
python思维导图
css
CSS
会话技术
会话技术的概述
是一种维护同一个浏览器与服务器之间多次请求数据状态的技术,它可以很容易地实现对用户登录的支持,记录该用户的行为,并根据授权级别和个人喜好显示相应的内容。
PHP中Cookie和Session是目前最常用的两种会话技术
Cookie指的是一种在浏览器端存储数据并以此来跟踪和识别用户的机制
Session指的是将信息存放在服务器端的会话技术
Cookie技术
简介
①它是网站为了辨别用户身份而存储在用户本地终端上的数据。 ②当用户通过浏览器访问Web服务器时,服务器会给客户发送一些信息,这些信息都保存在Cook ie中。 ③当该浏览器再次访问服务器时,会在请求头中同时将Coo kie发送给服务器,这样,服务器就可以对浏览器做出正确的响应。
基本使用
创建cookie
使用setcookie (函数可以创建或修改Cookie
获取cookie
在PHP中,任何从客户端发送的Cookie数据都会被自动存入到$_COOKIE超全局数组变量中。通过$_COOKIE数组可以获取Cookie数据。
删除cookie
Cookie创建时未设置有效时间,则Cookie文件会在关闭浏览器时自动被删除 利用setcookie()函数设置过期时间
cookie路径与域名
Cookie在用户的计算机中是以文件形式保存的,浏览器通常会提供Cookie管理程序 以Chrome浏览器为例,执行【设置】-【高级设置】-【隐私设置】-【内容设置】-【所有Cookie和网站数据】可以找到Cookie的管理程序
Cookie在浏览器中是根据域名分开保存的,每个Cookie都具有名字、内容、主机、路径、发送用途和过期时间等信息
Session 技术
Session在网络应用中称为“会话”,在PHP 中用于保存用户连续访问Web应用时的相关数据,有助于创建高度定制化的程序、增加站点的吸引力。
Session是一种服务器端的技术,它的生命周期从用户访问页面开始,直到断开与网站的连接时结束。 当PHP启动Session时,Web服务器在运行时会为每个用户的浏览器创建一个供其独享的Session文件。
在创建Session文件时,每一个Session都具有一个唯一的会话ID,用于标识不同的用户,且会话ID会分别保存在客户端和服务器端两个位置。 客户端通过Cookie保存, 服务器端则以文件的形式保存到php.ini指定的Session目录中,对于Windows系统,默认情况下保存到“C:\Windows\Temp”目录中。
启动session
在使用Session之前,需要先通过session_start()函数启动Session。 该函数的返回值是布尔类型,如果Session启动成功,返回true,否则返回false。 session_start()函数必须在所有输出之前。
查看SessionID与Session文件
浏览器访问开启Session的文件,可在开发者工具中查看Cookie中保存的会
在服务器中,打开Session文件默认的保存目录“C:\Windows\Temp
Session的使用
在完成Session的启动后,接下来Session的使用与Cookie的用法类似,可以通过超全局变量$_SESSION添加、读取或修改Session中的数据。
创建会话
启动会话
启动PHP会话的方式有两种:一种是使用session_start()函数,另一种是使用session_register()函数为会话登录一个变量来隐含地启动会话。 在PHP中有两种方法可以创建会话。
通过session_start ()函数创建会话。语法格式如下: bool session_start(void) ; 注意: session_start ()之前函数不能有任何输出。 通过session_register()函数创建会话。 session_register()函数用来为会话登录一个变量来隐含地启动会话,但要求设置php.ini文件的选项,将register_globals指令设置为on,然后重新启动Apache服务器。 注意:使用session_register(),不用调用session_start () ,PHP会隐含调用session_start ()
注册会话
会话变量被启动后,全部保存在数组$_SESSION中。通过数组$_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素即可。
使用会话
首先需要判断会话变量是否有一个会话ID存在,如果不存在,就创建一个,并且使其能够通过全局数组$_SESSION进行访问。如果已经存在,则将这个已注册的会话变量载入以供用户使用
删除会话
删除会话的方法主要有删除单个会话、删除多个会话和结束当前会话3种
(1)删除单个会话 删除会话变量,同数组的操作一样,直接注销$_SESSION数组的某个元素即可。
(2)删除多个会话 如果想要一次注销所有的会话变量,可以将一个空的数组赋值给$_SESSION,代码如下: $_SESSION = array() ;
(3)结束当前会话 如果整个会话已经结束,首先应该注销所有的会话变量,然后使用session_destroy()函数清除结束当前的会话,并清空会话中的所有资源,彻底销毁Session,代码如下: session_destroy() ;
session的配置
php.ini中与Session相关的配置
从PHP 7.0版本开始,可以在程序中通过session_start()函数的参数对Session进行配置,用于覆盖php.ini中对应的Session配置指令
session机制
默认情况下,PHP中的Session是通过实现SessionHandlerInterface接口,将其以文件的形式存储在服务器中的。该接口中有6个抽象方法。