码迷,mamicode.com
首页 > Web开发 > 详细

浅析PHP的会话技术

时间:2017-10-06 19:39:16      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:数据类型   文本   start   web服务器   时域   数值   自动保存   系统   响应头   

web会话可简单理解为:用户开一个浏览器,访问某一个web站点,在这个站点点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。

 

HTTP协议的特点是无状态/无连接,当一个浏览器连续多次请求同一个web服务器时,服务器是无法区分多个操作是否来自于同一个浏览器(用户)。会话技术就是通过HTTP协议想办法让服务器能够识别来自同一个浏览器的多次请求,从而方便浏览器(用户)在访问同一个网站的多次操作中,能够持续进行而不需要进行额外的身份验证。

会话技术分类

1) cookie技术

Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息

2) session技术

Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间。Session技术是将数据保存到服务器端,无论何时用户链接到服务器,Web站点都可以访问Session信息

 

两种会话技术区别

1) 安全性方面

a)   Session存储服务器端,安全性高

b)   Cookie存储浏览器段,安全性低

2) 数据大小方面

a)   Cookie的数量和大小都有限制(20个/4K)

b)   Session数据存储不限

3) 可用数据类型

a)   Cookie只能存储简单数据,数值/字符串

b)   Session可以存储复杂数据(自动序列化)

4) 保存位置方面

a)   Cookie保存在浏览器上

b)   Session保存在服务器上

 

 

COOKIE的基本使用

COOKIE原理

1、 第一次请求时,PHP通过setcookie函数将数据通过http协议响应头传输给浏览器

2、 浏览器在第一次响应的时候将Cookie数据保存到浏览器

3、 浏览器后续请求同一个网站的时候,会自动检测是否存在Cookie数据,如果存在将在请求头中将数据携带到服务器

4、 PHP执行的时候会自动判断浏览器请求中是否携带Cookie,如果写到,自动保存到$_COOKIE中

5、 利用$_COOKIE访问Cookie数据

 

SESSION原理

Session与浏览器无关,但是与Cookie有关。

1、 PHP碰到session_start()时开启session会话,会自动检测sessionID

a)        如果Cookie中存在,使用现成的

b)       如果Cookie中不存在,创建一个sessionID,并通过响应头以Cookie形式保存到浏览器上

2、 初始化超全局变量$_SESSION为一个空数组

3、 PHP通过sessionID去指定位置(session文件存储位置)匹配对应的文件

a)        不存在该文件:创建一个sessionID命名文件

b)       存在该文件:读取文件内容(反序列化),将数据存储到$_SESSION中

4、 脚本执行结束,将$_SESSION中保存的所有数据序列化存储到sessionID对应的文件中

 

浅析PHP的会话技术

标签:数据类型   文本   start   web服务器   时域   数值   自动保存   系统   响应头   

原文地址:http://www.cnblogs.com/hzheima/p/7631986.html

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