码迷,mamicode.com
首页 > 其他好文 > 详细

会话技术

时间:2016-04-06 18:11:14      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:

会话技术

????http属于无连接,无状态的协议,服务器无法识别,同一个客户端同一个浏览器的这次请求与上一次请求是否来自同一客户端。每一次请求都是一次会话。由于http协议的无连接,无状态的特性,所以有了会话技术来弥补此"缺点"。

????会话技术就是通过某种方式能够识别,请求来自哪一个客户端。

会话技术分cookie与session

cookie技术

cookie????甜点(小点心)

????利用http协议将数据保存在客户端电脑上。

http协议实现cookie

利用header(‘set-cookie:名=值‘);

示例:服务器php代码

技术分享

客户端cookie数据

技术分享

setcookie函数

setcookie(‘名‘,‘值‘,【过期时间【,路径【,作用域】】】)

示例

技术分享

技术分享

主机:表示是哪个服务器保存在客户端的cookie数据

路径:指是服务器的那个目录的文件保存在客户端的cookie数据

过期时间:如果不指定,表示当前会话(浏览关闭之前一直存在)

指定有效时间

setcookie(name,value,time);

说明:

????time是一个时间戳,以时间原点来起点。

示例:

技术分享

读取cookie

$_COOKIE系统预设置变量

?

技术分享

技术分享

cookie的执行原理

技术分享

提示:

????客户端携带数据是http协议自动完成的,服务器端数据的写入$_COOKIE中也是http协议自动完成。

路径

????默认哪个脚本文件设置的cookie,客户端中cookie数据中主机就是此脚本文件所在的目录。

????默认cookie只能向上访问,不能向下访问。

示例1:

????设置cookie的文件在20151229/code/01demo_cookie.php

技术分享

????读取cookie的文件在20151229/01demo_read_cookie.php

????此种方向读取是不可以

示例2:

????设置cookie的文件在20151229/code/01demo_cookie.php

技术分享

????读取cookie的文件在20151229/code/son/01demo_son_read_cookie.php

????此种方向读取是可以

一般情况cookie是整站有效。

语法:

????setcooke(name,value,expire,‘/‘);

示例:

技术分享

跨域

域名:

顶级域名????????

????.cn????????表示中国

????.us????????表示美国

????.hk????????表示香港

????.jp????????表示小日本

?

一级域名

????gov.cn????????政府部门

????mil.cn????????军事部门

????edu.cn????????教育机构

????org.cn????????非盈利组织

?

二级域名

????news.baidu.com

????zhaidao.baidu.com

????tieba.baidu.com

????music.baidu.com

技术分享

技术分享

cookie特点

????cookie只能保存字符串。

????由于[]对于php来说,就是一个定义数组的语法,所以在set_cookie在cookie的名后加[],作为cookie,当cookie被返回到服务器,php会将其解析成数组

示例:

技术分享

cookie的总结

????cookie是存储在客户端的数据,那么此数据不安全(用户可以任意更改),所以由不安全,所以不会使用cookie来保存重要的数据。

?

session技术

????会话技术的一种,session是以cookie为基础,将一个标识通过cookie写到客户端,再在服务器以此标识为依据存储一个数据在$_SESSION中。

类比:

????将一个标识通过cookie写到客户端 相当于银行为用户发放一个卡号。

????以此标识为依据存储一个数据在$_SESSION中 相当于在银行为用户开记一个账户,账户里写金额信息。

PHP中session有一套独立的机制

session的使用

手动session

开启session

session_start();

语法:

技术分享

向session中写数据

$_SESSION,就是一个数组,用于存储session中的数据,只有在session机制开启之后才会存在。

读取数据

在手动session中,对session的任何操作都必须先开启session

技术分享

原理:

技术分享

自动session

?

删除session

语法:

????session_destroy();

删除当前进程中的session

第1步:

????在admin/template/top.html的退出链接的herf属性设置如下:

技术分享

第2步:

????由于退出按钮是以get方式向privlege.php文件中传递action,但是登陆界面数据的传递是使用post方式,冲突, 所以使用$_REQUEST代替。

技术分享

第3步:

????由于退出也属于用户行的,所以在privilege.php文件中进行判断

技术分享

?

会话技术

标签:

原文地址:http://www.cnblogs.com/nyxd/p/5360214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!