一、什么是会话?
会话是跟踪web程序中常用的技术,用来跟踪用户的整个会话。
会话的作用:记住用户身份。
二、为什么要使用会话技术
我们在浏览网站的时候,访问每一个Web页面都是使用HTTP协议来实现的。由于HTTP协议是一个无状态的协议。这就会导致当一个用户请求一个页面以后,再请求该网站的其他页面,HTTP协议并不能告诉服务器这是同一个用户。因为HTTP协议是无状态的,所以我们无法跟踪用户。所以一定程度上会影响开发,例如:登录模块,如果不能跟踪用户,将会导致访问该网站的每一个都要求我们重新登录。
三、用户跟踪的方式
所谓用户跟踪,其实就是向另一个网页传递数据。
PHP里面提供了3种方法来实现网页之间传递数据:
①可通过超链接或者 header() 函数在URL后面附加参数的形式来传递数据。
② 使用cookie将用户的状态信息存储在客户端的计算机里面。
③ 使用session将用户的状态信息存储在服务器端的计算机里面。
如果用户的状态信息全部都是通过附加在URL后面来进行传递,那么,开发工作量是非常大。所以一般选用Cookie或者Session技术。
四、Cookie
-
cookie 的作用
cookie 常用于识别用户。 -
cookie的概述:
cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,能够创建并取回 cookie 的值。 -
cookie的使用:
①创建Cookie : 在PHP里面,提供了一个叫做setCookie的函数,可以用客户端发送cookie信息
Bool SetCookie(名称,值,生存时间,有效的目录,有效的域名,是否通过安全协议HTTPS来传输Cookie) Cookie的生存时间是以当前的时间戳来计算的 如果Cookie设置成功,则返回true(注意:浏览器之间的cookie不是共用的。)
②读取Cookie
在PHP里面提供了一个$_COOKIE[ ]这是一个超全局数组。该超全局数据用来存放从客户端发送过来的cookie信息。③删除cookie
删除cookie,只需调用setCookie函数,只需要value值为空,然后时间小于当前的系统时间即可
五、Session
- session的作用:
PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。 - Session 的概述
您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于 HTTP 地址无法保持状态,Web 服务器并不知道您是谁以及您做了什么。
session 解决了这个问题,它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。 - Session 的工作机制
为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导。 - session的使用
①启动会话 session_start()
session_start() 函数必须位于 html 标签之前
②存入会话 $_SESSION[‘key’] = $value;
(存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量)
③读取会话 $value = S E S S I O N [ ′ k e y ′ ] ④ 删 除 会 话 u n s e t ( _SESSION['key'] ④删除会话 unset( SESSION[′key′]④删除会话unset(_SESSION[‘key’])
调用 session_destroy() 函数彻底销毁 session
⑤结束当前会话 session_destroy()
六、cookie和session的区别
- cookie的数据存在客户端,session的数据存在服务器端
- cookie不是很安全,别人可分析存放在本地的cookie并进行cookie欺骗,so,为了安全,建议使用session
- session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,为了减轻服务器性能的问题,应使用cookie
- 单个cookie保存的数据不超过4k,大部分浏览;其他信息若需保留,可存放为cookie