HTTP:

HTTP的两大特点:无连接无状态

  无连接:每次连接只处理一个请求,服务器处理完客户端的请求,响应给客户端之后就断开本次连接(及时的释放系统资源)

  无状态:每次请求完之后,服务器都不会记住是谁发送过来的。

 

基于http的两大特点,会话控制出现了。

主要是达成服务器跟浏览器之间持续连接的状态,解决无状态的问题,让服务器记住是谁。

 

cookie:

内存Cookie :由浏览器维护,保存在内存中,关闭浏览器就消失,存在时间短暂

硬盘cookie : 保存在硬盘中,过期时间到了,才自动销毁(7天免登录,购物车)

设置:setcookie

获取:$_COOKIE

更新:setcookie()进行覆盖

删除:set('user_name',' ',time()-1);

setcookie()与setrawcookie()--->不会对值进行url编码

注意:更新和删除cookie的时候,需要保持$path和$domain是一致的。

 

js操作cookie(自行封装)

 

cookie实现免登录思路:

在网站页面中通过auth凭证去判断用户是不是合法登录(防止伪造)

 

cookie类的封装

 

 

 

 

h5中的localStorage:

查看下当前浏览器的支持情况:(可以到caniuse.com查看浏览器的支持情况=》主流浏览器基本都支持,大胆使用)

 

对localStorage的api进行封装(加入过期时间)

 

 session:

session的工作原理

 

 

 

 

 

去php.net官网去查看session的配置说明(挺实用)

用户禁用了cookie之后,我们也可以传递sessid,只不过是附着在了地址栏上,很不安全。(不建议使用)

 

 销毁会话:

 

 

session的应用:图片验证码

 利用gd2生成:

  ①创建画布  imagecreatetruecolor — 新建一个真彩色图像

  ②画布背景颜色填充  imagecolorallocate — 为一幅图像分配颜色

  ③生成验证码字符串  随机生成

  ④字符串写入画布  imagettftext — 用 TrueType 字体向图像写入文本

  ⑤写入干扰像素点  imagesetpixel — 画一个单一像素

  ⑥生成图片  header(' Content-Type:image/png ');     imagepng — 以 PNG 格式将图像输出到浏览器或文件(在生成之前不能有任何输出)

  ⑦销毁画布  imagedestroy — 销毁一图像

  ⑧ return $str

在使用的地方,保存$str到session中去。

 

session默认采取文件的方式存储在磁盘中,I/o开销严重,影响网站的性能。

   php5.4提供了一个接口SessionHandlerInterface,我们可以通过这个接口实现保存session入库、redis、memcache中去。

我们需要实现这个接口(接口里的方法必须得去实现,否则报错)。

  见(Session自定义存储及分布式存储:参看https://www.cnblogs.com/52fhy/p/5495425.html)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2018-03-26 21:59  程序猿的点滴生活  阅读(121)  评论(0编辑  收藏  举报