会话处理解决什么问题

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方式,能够用自己定义函数与会话配合。看上去功能非常强大。

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

最新文章

  1. 奇异值分解(SVD)和简单图像压缩
  2. Visual Studio 创建C++或C#Windows程序
  3. sqlserver ,left join 不仅可以join表,还可以是一个结果集
  4. symbol(s) not found for architecture x86_64 之 linker command failed with exit code 1 (use -v to see invocation)解决方案排查
  5. C语言实现单链表-01版
  6. 我们需要专职的QA吗?
  7. 10年省赛-Greatest Number (二分+暴力) + 12年省赛-Pick apples(DP) + UVA 12325(暴力-2次枚举)
  8. hdu 1002大数(Java)
  9. ASP.NET整理
  10. 了解 HTTPS,读这篇文章就够了
  11. 如何防止自己网站的图片被其他网站所盗用,从而导致自己网站流量的损失【apache篇】
  12. LeetCode算法题-Reverse Linked List(Java实现)
  13. ES6 原始类型 Symbol
  14. js中函数对象创建的总结
  15. JS对象、数据类型区别、函数
  16. 内存管理-slab[原理]
  17. CSS:font-family常用字体中英文对照
  18. [PLC]ST语言四:INV_MEP_MEF_PLS_PLF_MC_MCR
  19. VirtualBox安装Centos后实现文件夹共享
  20. Python easyGUI 猜数字

热门文章

  1. flask中内置的session
  2. 【Java设计模式】工厂模式
  3. Android sensor 系统框架 (二)
  4. 《Java编程的逻辑》第四部分 文件
  5. JS——放大镜
  6. Java_Web三大框架之Hibernate+jsp+selvect+HQL查询数据
  7. 5.21leetcode练习
  8. PHP 之微信小程序支付封装
  9. POJ3984——迷宫问题
  10. Django CBV视图解决csrf认证