会话处理解决什么问题

HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本、图形、视频和全部其它的数据的规则。HTTP是一种无状态协议,每次请求的处理,都与之前和之后的请求无关。

会话处理是这样的无状态问题的解决的方法。它的实现方式是为每一位站点訪问者分配一个称为会话ID(SID)的唯一标志属性,然后将此SID与随意数量的数据关联。

会话处理流程

  1. 浏览器向server发送请求
  2. server为訪客建立会话ID(SID)。通常SID存储在server端一个文件里。
  3. 存储在client($_COOKIE[‘PHPSESSID’]或者url參数)
  4. 浏览器再次向server发送请求
  5. server通过读取cookie(或者url的參数)来验证SID是否依旧同一次会话
  6. 离开站点,会话结束

问题

SID是怎样被写到cookie中去?

PHP 会话启动以后,会给每一个訪客分配一个SID,这个SID同一时候会写到client的cookie中去,默认cookie变量名为:PHPSESSID

这里说同一时候是不确切的由于下页代码仅仅会在刷新页面以后,才干取到cookie:

session_start();
echo('SID:'.session_id().'<hr/>');
echo('Cookie_sid:'.$_COOKIE['PHPSESSID'].'<hr/>');

cookie被禁用了,session会不会同一时候失效?

在没有做不论什么准备的情况下。client禁用cookie确实会让session失效。

书上(PHP与MySQL程序设计 第三版)说。client存储SID的方式有两种,一种是cookie,一种是重写URL来传递。

能够在php.ini文件里更改session.use_trans_sid的值,来实现url的自己主动重写。但笔者没有做測试。

会话在server端的存储方式

默认情况下,session 以文件方式存储在server上。在php.ini文件里可做相关设置:

session.save_handler=files
session.save_path = "N;MODE;/path"

save_handler值有四个:

  1. files 平面文件
  2. mm 共享内存
  3. sqlite SQLite数据库
  4. user 用户自己定义函数

通过user方式,能够用自己定义函数与会话配合。看上去功能非常强大。

但没时间去实操。有空再研究。

关于PHP会话:session和cookie的更多相关文章

  1. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  2. session 和cookie

    (1)cookie与session---------->>>>>>>>>>>>>>>>>>& ...

  3. Session和Cookie详解(1)

    面试常问的有关session和cookie的问题: 1.session在分布式环境下怎么解决 2.集群下如何保证session踩中 3.cookie的大小 4.服务器怎么识别一个用户的 5.sessi ...

  4. Django中的session和cookie及分页设置

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  5. java的会话管理:Cookie和Session

    java的会话管理:Cookie和Session 1.什么是会话 此处的是指客户端(浏览器)和服务端之间的数据传输.例如用户登录,购物车等 会话管理就是管理浏览器客户端和服务端之间会话过程产生的会话数 ...

  6. 会话技术( Cookie ,Session)

    会话技术:    会话:浏览器访问服务器端,发送多次请求,接受多次响应.直到有一方断开连接.会话结束.        解决问题:可以使用会话技术,在一次会话的多次请求之间共享数据.           ...

  7. PHP会话管理:cookie和session

    PHP会话管理1.cookie数据存储在浏览器端方便与JavaScript交换数据方便获取用户信息风险-浏览器可能会禁用cookie替代方案-URL参数 2.session数据存储在服务器高效.安全. ...

  8. JavaWeb学习之转发和重定向、会话技术:cookie、session、验证码实例、URLConnection使用(下载网页)(4)

    1.转发和重定向 HttpServletResponse response 转发: RequestDispatcher dispatcher = request.getRequestDispatche ...

  9. 会话控制:cookie和session基础学习笔记

    在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session) 我们可以简单理解为浏览器的开关. 其实对cookie和session也是主要为curd操作 coo ...

  10. 理解会话中的Cookie和Session对象

    会话可以简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 在java语言中,Servlet程序是由WEB服务器调用,web服务器收到客 ...

随机推荐

  1. eclipse-html插件的安装

    需求:需要在eclipse里面编辑html和jsp,语法高亮和语法提示,自动补全等. 1.下载GEF(依赖包): http://www.eclipse.org/downloads/download.p ...

  2. 【知识总结】快速傅里叶变换(FFT)

    这可能是我第五次学FFT了--菜哭qwq 先给出一些个人认为非常优秀的参考资料: 一小时学会快速傅里叶变换(Fast Fourier Transform) - 知乎 小学生都能看懂的FFT!!! - ...

  3. EasyUI系列学习(二)-使用EasyUI

    一.引入必要文件 <!--1.0引入jQuery核心库--> <script src="jquery-easyui-1.4.4/jquery.min.js"> ...

  4. Python学习(一)-在VS上搭建开发环境

    1.到官网下载最新Python 注意:虽然目前大部分应用是Python2写的,但Python3必定会成为以后的主流 不管选择学习哪个,了解pyhton2和pyhton3的差异是必须的 2.安装Pyth ...

  5. T-SQL语句以及几个数据库引擎

    创建表 注意事项: A.自增长             B.数据库引擎, ISAM 是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数.因此,IS ...

  6. 【SQLite】select into 语句

    sqlite不支持类似sqlserver中的select into 语法 在SQL Server中,我们要将一个表中的数据复制到一个新表中,可以这样写: SELECT * INTO newtable ...

  7. AcGePoint3d ads_point 转换

    AcGePoint3d (AcGePoint2d )转换 ads_point 用:asDblArray函数. ads_point 转换AcGePoint2d  用asPnt2d(const doubl ...

  8. python之urllib库

    urllib库 urllib库是Python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. urlopen函数: 在Python3的urlli ...

  9. vue数据绑定源码

    思路分析 数据的双向绑定,就是数据变化了自动更新视图,视图变化了自动更新数据,实际上视图变化更新数据只要通过事件监听就可以实现了,并不是数据双向绑定的关键点.关键还是数据变化了驱动视图自动更新. 所有 ...

  10. 使用 lua 编写 wireshark 协议解析插件

    一.平台 操作系统:windows 7 wireshark:1.10.3 lua:5.1 二.准备 lua 语言基本语法,特别是关于表操作和循环 wireshark 文档,包括用户使用文档和开发者文档 ...