201703-08 Session机制详解 虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Javawebapplication中应用session机制时常见的问题作出解答。一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中... 继续阅读 >
201608-11 Yii2.0 的COOKIE和SESSION用法 1、Cookie Yii2的Cookie主要是通过yii\web\Request和yii\web\Response进行操作的,通过\Yii::$app->response->getCookies()->add()添加Cookie,通过\Yii::$app->request->cookies读取Cookie. 1)添加一个Cookie<?php//第一种方法$cookie=new\yii\web\Cookie();$cookie->name='smister';//cookie的名称$cookie->expire=time()+3600;//... 继续阅读 >
201604-05 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。Cookie机制Cookie技术是客户端的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方... 继续阅读 >
201601-19 如果Cookie禁用了Session还能使用吗? Cookie与Session一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。Cookie分为两种,一种可以叫做sessioncookie,浏览器关闭就会丢失,一种可以...Cookie与Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。Cookie分为两种,一种可以叫做sessioncookie,浏览器关闭就会丢失,一种可以叫做p... 继续阅读 >
201512-05 Session的本质 有一点我们必须承认,大多数web应用程序都离不开session的使用。这篇文章将会结合php以及http协议来分析如何建立一个安全的会话管理机制。我们先简单的了解一些http的知识,从而理解该协议的无状态特性。然后,学习一些关于cookie的基本操作。最后,我会一步步阐述如何使用一些简单,高效的方法来提高你的php应用程序的安全性以及稳定行。我想大多数的php初级程序员一定会认为php默认的session机制的安全性似乎是有一定保障的,... 继续阅读 >
201503-26 PHP中使用Session令牌防止Ajax表单重复提交 防止表单重复提交主要有两种方式:1)通过重定向(非Ajax表单提交)2)通过SessionToken(Session令牌)当客户端请求页面时,服务器会生成一个随机数,并且将该随机数放置到session当中,然后将该随机数发向客户端;如果客户第一次提交,那么会将该随机数发往服务器端,服务器会接收到该随机数并且与session中所保存的随机数进行比较,这时两者的值是相同的,服务器认为是第一次提交,并且将更新服务器端的这个随机数值;如... 继续阅读 >
201503-06 关于大型网站技术演进的思考(一):存储的瓶颈(1) 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标... 继续阅读 >
201501-31 PHP操作Session和Cookie 我们跟踪用户信息时需要用到Session和Cookie,比如用户登录验证、记录用户浏览历史,存储购物车数据,限制用户会话有效时间等。今天我们来了解下PHP是如何操作Session和Cookie的。SessionPHP的$_SESSION可以存储当前用户数据信息,用户访问WEB网站的时候,PHP会给每个访问的用户创建一个sessionID,该ID是唯一ID,保存在客户机上,而用户的会话数据是保存到服务端的,PHP可以对每个不同的用户信息进行存储,当会话过期后... 继续阅读 >
201501-30 PHP如何将session保存到memcached中?如何分布式保存PHP session session_set_save_handler无关的memcached保存session的方法在memcached服务器上1)下载memcached#wgethttp://memcached.googlecode.com/files/memcached-1.4.15.tar.gz2)由于memcached依赖libevent所以需要先安装libevent库,这里直接yum安装#yuminstall*libevent*3)安装memcached#./configure--prefix=/usr/local/memcached#make#makeinstall4)启动memcached#/usr/local/memcached/bin/memcached-d-m4096-p1... 继续阅读 >
201501-27 PHP中设置session的生命周期 PHP中,Session变量保存在服务器端(默认以文件格式保存),而SessionID以cookie形式保存在客户端。销毁session的方法有两种:第一种是通过程序session_destory()方法清除所有sessionunset(session['x'])来清除指定的session['x']。第二种是通过关闭浏览器关闭后会直接清除所有session。在Cookie没有禁用的情况下,sessionID是保存在Cookie中的。想要改变session生命周期,可以通过设置Cookie中sessionID的有效时间来实现。... 继续阅读 >
201501-27 Yii中后台使用session防止重复提交及灌水 1、从前端的角度:增加遮罩2、从后端的角度:使用session$session=Yii::app()->session;$user_id=Yii::app()->user->id;$sessionKey=$user_id.'_is_sending';if(isset($session[$sessionKey])){$first_submit_time=$session[$sessionKey];$current_time=time();if($current_time-$first_submit_time<10){$session[$sessionKey]=$current_time;$this->response(array('status'=>1,'... 继续阅读 >
201501-23 PHP Session可能会引起并发问题 在进行Web应用程序开发的时候,人们经常会用Session存储数据。但可能有人不知道,在PHP中,Session使用不当可能会引起并发问题。印度医疗行业软件解决方案提供商Plus91Technologies高级工程师KishanGor在个人博客上对这个问题进行了阐释。如果同一个客户端并发发送多个请求,而每个请求都使用了Session,那么PHPSession锁的存在会导致服务器串行响应这些请求,而不是并行。这是因为在默认情况下,PHP使用文件存储Sess... 继续阅读 >
201412-02 Asp.net 2.0 Session 丢失的几种情况 1、Session到期自定丢失。2、当修改web.config系统会重启 SESSION会丢失.3、Bin目录有变化时候系统会重启SESSION会丢失(这里变化指的是,创建新文件、修改文件名、修改文件内容、删除文件、修改目录名、删除目录) 唯独创建新目录时候部系统不会重启, 4、整个应用程序目录都被.net所监控,一旦有变化会导致重启SESSION丢失。(这里变化指的是,修改目录名、删除目录)5、当进程用户名例如:&n... 继续阅读 >
201411-11 新浪PHP笔试题及答案解析 1.cookie、session的联系和区别,多台web服务器如何共享session?cookie在客户端保存状态,session在服务器端保存状态。但是由于在服务器端保存状态的时候,在客户端也需要一个标识,所以session也可能要借助cookie来实现保存标识位的作用。cookie包括名字,值,域,路径,过期时间。路径和域构成cookie的作用范围。cookie如果不设置过期时间,则这个cookie在浏览器进程存在时有效,关闭时销毁。如果设置了过期时间,则cookie存... 继续阅读 >
201411-07 Yii框架官方指南系列28——缓存:概览 缓存是提升Web应用性能的简便有效的方式。通过将相对静态的数据存储到缓存并在收到请求时取回缓存,我们便节省了生成这些数据所需的时间。在Yii中使用缓存主要包括配置并访问一个应用组件。下面的应用配置设定了一个使用两个memcache缓存服务器的缓存组件。array(......'components'=>array(......'cache'=>array('class'=>'system.caching.CMemCache','servers'=>array... 继续阅读 >
201411-07 PHP基础之类和对象22——对象序列化 所谓的序列化对象就是在会话中存放对象所有php里面的值都可以使用函数 serialize()来返回一个包含字节流的字符串来表示。 unserialize()函数能够重新把字符串变回php原来的值。序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。为了能够 unserialize()一个对象,这个对象的类必须已经定义过。如果序列化类A的一个对象,将会返回一个跟类A相关,而且包含了对象所有变量值的字符串。如果要... 继续阅读 >