- 浏览: 163069 次
- 性别:
- 来自: 杭州
文章分类
最新评论
1:如何传输会话ID
会话ID在cookie中发送,cookie的名字就是会话名,在下一次调用session_start时,php会从这个cookie获得会话ID,并检查与给定相关联的会话程序存贮,如果没有得到数据,就创建一个新的数据集。但是,一些用户将浏览器配置为不接受cookie。如果会话机制完全依赖于cookie,那么这就有问题了。php对此有个方案,当它探测到不能使用cookie时,它可以将会话ID作为参数放在页面访问的URL中。这样做的优点是即使用户禁止了cookie,我们也能够跟踪用户在Web程序中的进展。要启用这种功能必须打开php.ini中session.use_trand_sid,并且确保session.onlu_cookies配置选项设置为0。尽管这个很方便,但是不常用,将会话ID放在明文的cookie中已经形成了一个安全问题。
2:页面缓存
对于会话数据要考虑的问题之一是浏览器缓存。客户机Web浏览器利用这种特性将下载的页面副本保存在本地机器上,从而避免从新获得页面。对于静态内容,这可以节省时间和网络宽带,因为用户可能多次访问给定的页面,而页面的内容已经保存在本地机器上了。其他网络设备也可能进行页面缓存。有些网络上有代理服务器,它们缓存HTML数据,一些大型Web站点可能有专用的缓存机器,它们唯一的工作就是减少Web应用服务器的流量。但是对于敏感内容页面缓存可能造成危害。不缓存这些信息,php提供一个session_cache_limiter的函数。
这个函数最常用的值和返回值是:public这表示任何人都可以缓存这个页面及相关内容。这适合静态内容。
private这告诉客户机可以缓存这个页面中的数据,其他设备比如代理服务器和网络设备不应该缓存它,这适合有点儿敏感的静态内容。
nocache(默认值)这告诉途中的任何设备都不应该缓存这个页面内容。这适合敏感或动态的内容。
no-store这指示所有设备和计算机不应该缓存页面内容和任何关联的内容。
这可以控制页面在不同的缓存中存储多长时间。session_cache_expire函数在会话中控制。这个函数返缓存过期时间的当前值,以分钟为单位。如果传递参数,就将心的过期时间设置为这个值。默认3小时(180分钟)
$timeout = session_cache_expire();
session_cache_expire(15);
session_start();
echo "the cache expire timeout:{$timeout}min";
通过使用比较短的缓存过期时间就可以再一定程度上获得缓存的好处,同时不破坏应用程序的动态性质。
php.ini这这里选项的默认值
session.cache_liliter nocache
session.cache_expire 180
3:破坏会话
1>破坏一个会话分三个单独的部分,每个部分需要不同的代码首先需要破坏会话数据,这些数据在默认的情况下存储在服务器硬盘上,这要使用session_destroy();
2>第二步是破坏事件的会话,这需要消除会话cookie。通过使用setcookie函数并指定一个过去的时间久可以再客户机上消除会话cookie。如果没有执行这一步,那么用户以后对这个站点的请求会附带发送他的会话cookie,而且一会调用session_start时仍然会返回同样的会话ID。
3>最后一步是破坏$_SESSION超级全局变量,从而删除与会话管理的任何数据,办法给它赋一个新值。
session_destroy();
setcookie(session_name(),'',time() - 3600);
$_SESSION = array();
4:会话存储如何工作
在默认情况下,php将会话写入一个文件并将它放在session.save_path配置选项的指定位置。
在穿件一个新会话并且分配一个会话ID时,php在这个目录中写一个文件,文件名以sess_开头,以会话ID结束。每次在泽火革会话下操作的页面完成执行时,php将$_SESSION数组中的数据写入这个文件。下一次启动统一会话php从这个文件装载并且重新创建这个数组。php定期遍历这些文件,寻找过期的会话并且删除它们。这适合中小型的Web应用程序。但是,当编写大型的Web应用程序并开始跨多个服务器负载时,就会出现一个问题。在这种情况下属于统一会话的不同请求可能会被发送到不同的服务器。如果会话数据值保存在一台服务器上的存储文件中,那么就无法从另一台服务器访问它!一种可能的解决方案借助于给予网络的文件系统。封号的解决方案是使用数据库进行存储。因为数据库具有良好的可靠性,并发性和事务处理的功能。session_set_save_handler函数正是为此设计的。这个函数接收到 参数是6个函数的名称,应该用这些函数进行会话处理。
open这个函数用来开始会话存储机制。它必须在成时放回TRUE在失败时返回FALSE。
close这个函数关闭并终止会话存储操作。它在成功时返回TRUE失败时返回FALSE。
read当从存储中装载会话数据时使用这个函数。这个函数的参数是要获取器数据的会话ID。它在成功时放回请求的会话数据。在失败时返回“”。
write这个函数将给定的会话ID的所有数据写到存储中。写入的这些数据时一大段文本。这个函数在成功时返回TRUE失败返回FALSE。
destroy当破坏与指定的会话ID相关联的数据时,调用这个函数。它在完成时返回TRUE。
gc这个函数对存储系统中的数据进行垃圾收集。传递给这个函数的参数是会话数据的有效期(秒数).这个函数子啊成功时返回TRUE。
发表评论
-
实时编辑表格
2014-06-03 10:08 827实时编辑表格 -
手把手教你在Ubuntu上安装Apache、MySql和PHP
2013-07-11 15:25 01:首先安装apache:打开终端(ctrl+Alt+t), ... -
正则取a
2013-04-17 16:29 0<a[^>]*href=["'](?[^ ... -
操作字符串
2013-04-09 15:42 778strpos() - Find the position ... -
php oracle CLOB
2013-03-05 10:49 22271.php insert oracle 的CLOB字段 ... -
ckeditor配置
2013-04-09 15:42 1227// 界面语言,默认为 'en'config.langua ... -
格式化文件大小
2013-04-09 15:41 860function formatBytes($bytes) ... -
PHP显示Deprecated: Assigning the return value of new by reference is deprecated in
2013-04-09 15:41 933昨晚用Spreadsheet_Excel_Rea ... -
PHP的位运算
2013-01-09 10:34 873$a & $b and(按位与) $a | $b o ... -
cookie和会话(二)
2012-12-07 23:34 1734会话 除了能够在客户机和服务器之间发送少量信息外,还 ... -
cookie和会话(一)
2012-12-05 23:04 1396cookie解决了跟踪各个访问者或用户,服务器利用cook ... -
(转)匹配中文
2012-11-27 17:13 1029在javascript中,要判断 ... -
php+jquery+ajax+json简单小例子
2012-11-22 23:52 75092直接贴代码: <html> <titl ... -
PECR
2012-11-20 22:13 1007经常使用的分隔符是正斜线(/), hash符号(#) 以 ... -
几个经典函数
2012-11-20 00:19 9581:是否为邮件 function is_email($em ... -
html2fpdf HTML转换为PDF
2012-11-14 12:33 6521下载html2fpdf包: downurl:http://s ... -
检查浏览器版本类
2012-11-09 13:11 794class BrowserDetector { var $U ... -
匹配链接
2012-10-30 11:43 836有一段类似下面的代码,匹配所有的链接地址: $code = ... -
PHP获取类名及所有函数名
2012-08-24 11:48 11798PHP获取类名及所有函数名1.获取行号、文件路径文件名、类名、 ... -
获取<meta>中的content标签内容
2012-02-24 09:04 2065php函数:$tags = get_meta_tags ( ' ...
相关推荐
本实践将探讨如何在分布式环境中实现会话追踪,主要采用Cookie和Redis这两种技术手段。 首先,我们要理解会话(Session)的概念。在Web开发中,会话是一种在用户浏览器与服务器之间维持状态的技术,允许跨多个HTTP...
以下是对"Cookie会话的操作"这一主题的详细阐述。 Cookie是一种在客户端(用户的浏览器)存储小量数据的技术。它们由服务器发送到用户的浏览器,并由浏览器在后续的请求中回发给服务器。主要有以下几个知识点: 1....
cookie-session, 基于简单cookie的会话中间件 cookie会话 基于简单cookie的会话中间件。用户会话可以通过 Cookies 以两种主要方式存储: 在服务器上或者在客户端上。 这个模块在cookie中存储会话数据,而像 express...
// 设置 A、B、C 三个 Cookie setcookie("A", "10", time()-3600); // A 在一小时前已过期 setcookie("B", "10", time()+3600); // B 一小时后过期 setcookie("C", "10", mktime(0, 0, 0, 1, 1, 2012)); // C 在...
接着,我们来看两种常见的会话保持技术:Cookie和Session。 1. **Cookie**:这是一种客户端技术,由服务器创建并在客户端(用户的浏览器)上存储数据。每当用户通过浏览器请求服务器资源时,浏览器会自动将对应的...
2. 基于Cookie的会话保持:这种方法是使用Cookie来保持会话,服务器在客户端的Cookie中存储一些信息,以便识别客户的身份。F5支持多种基于Cookie的会话保持方法,包括: 2.1 cookie插入模式:在这个模式下,F5会在...
会话技术主要涉及两个概念:Cookie和Session。会话指的是用户开启浏览器,访问网站,并且在不关闭浏览器的前提下,访问多个链接和资源的过程。会话技术的使用主要是为了解决HTTP协议无状态性的限制,即每次HTTP请求...
- **会话Cookie (Session Cookie)**: 不设定过期时间,仅在用户会话期间有效。 - **持久Cookie (Persistent Cookie)**: 设定了过期时间,在该时间内无论浏览器是否重启都会保持有效。 **用途**: Cookie常用于个性化...
会话技术简单介绍,会话可以简单的理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。会话过程中要解决的一些问题?每个用户与服务器进行交互的过程中,...
express-socket.io-session, socket.io 共享基于cookie的会话中间件 express-socket.io-sessionsocket.io 共享基于cookie的会话中间件。 使用英镑表示的> 4.0.0 和英镑> 1.0.0,不支持向后兼容。帮助我注意错误或者...
本文档是《SANGFOR AD V5.2 Cookie会话保持配置及说明指导书》,主要针对深信服公司的AD产品,详细阐述了如何配置和理解Cookie会话保持功能。这份指南由深信服科技有限公司编写,旨在帮助用户有效管理和维护用户的...
针对基于源IP会话保持的IPVS在高速代理上网环境中存在的会话失效和负载不均衡问题, 研究了LVS系统的设计原理与实现方法, 并结合Web应用中cookie会话保持机制, 提出了基于cookie会话保持的改进方案。实验结果表明, ...
cookie、session会话技术
- 遍历这些Cookie对象,使用`getName()`和`getValue()`方法来获取Cookie的名称和值。 - 示例代码: ```java String cookieName = "userID"; Cookie[] cookies = request.getCookies(); if (cookies != null) {...
`pycookiecheat`是一个方便的Python库,它允许我们从已经验证的浏览器会话中提取Cookie,然后在Python脚本中使用这些Cookie来模拟登录状态。 首先,让我们深入了解一下什么是Cookie。Cookie是服务器发送到用户...
本文将深入探讨Cookie和Session两种主要的会话管理方式,并结合一个名为"ShoppingCar"的示例来阐述它们在实际应用中的工作原理。 **一、Cookie** Cookie是由服务器发送到客户端(浏览器)的一小段信息,然后由...
当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。...
为了解决这一问题,开发了两种主要的会话跟踪技术——Cookie和Session。 #### 二、Cookie机制 ##### 1. Cookie的概念 Cookie是一种简单的机制,用于在客户端存储信息以便后续的请求中使用。它最初是由Netscape...