zoukankan      html  css  js  c++  java
  • phpsession配置

    1. 介绍

    1.1 作用:

    主要用于服务器端的会话保持。

    1.2 结构:

    Session分以下几部分:

     1)Session id 用户Session的唯一标识(随机生成,具有唯一性,随机性)

     2)Session data 保存用户状态信息(用户数据) 

     3)Session file Session的存储方式,文件存储方式以"sess_"前缀+"Session_id"后缀的方式存储 格式如下: 1 sess_d3eom13a9r9p5i5nj923voqaf7 

     4)Session lifetime Session生存时间(从Session的产生到生命周期的结束)

    1.3 工作原理:

     1)客户端与服务器建立联系 

     2)客户端将session id传递给服务器 

     3)服务器根据session id建立相应的session id文件(session id序列化保存,读取时反序列化) 

    唯一标识的方法有两种:cookie或者通过GET方式指定

    1.4 缺点:

    1)使用Session会影响系统性能(受文件系统设计影响,目录定义超过10000个文件非常耗时) 

    2)Session文件大小1~2K,数量庞大的小文件影响硬盘IO性能

        PS:此可以使用redis memcache的方式来共享session ,同时也解决了影响系统性能的问题

    2.配置文件:

    [Session]

     session.save_handler = files #session的存储方式

     session.use_cookies= 1 #使用cookies在客户端保存会话 

     session.use_only_cookies = 1 #去保护URL中传送session id的用户

     session.name = PHPSESSID #session名称(默认PHPSESSID)

     session.auto_start = 0 #不启用请求自动初始化session

     session.cookie_lifetime = 0 #cookie存活时间(0为直至浏览器重启,单位秒) 

     session.cookie_path = / #cookie的有效路径 

     session.cookie_domain = #cookie的有效域名

     session.cookie_httponly = #httponly标记增加到cookie上(脚本语言无法抓取) 

     session.serialize_handler = php #PHP标准序列化 

     session.gc_probability =1 

     session.gc_divisor =1000 #建议设置1000-5000 #概率=session.gc_probability/session.gc_divisor(1/1000 #页面访问越频繁概率越小   session.gc_maxlifetime =1440 #过期时间(默认24分钟,单位秒) 

     session.bug_compat_42 = off #全局初始化session变量 

     session.bug_compat_warn = off 

     session.referer_check = #防止带有ID的外部URL 

        session.entopy_length = 0 #读取的字节 

     session.cache_limiter = {nocache,private,pblic} #HTTP缓冲类型

     session.cache_expire = 180 #文档过期时间(分钟) 

       session.use_trans_sid = 1 #trans_sid支持(默认0)

     session.hash_function = 0 #hash方法{0:md5(128 bits),1:SHA-1(160 bits)} 

     session.hash_bits_per_character = 5 #当转换二进制hash数据奥可读形式是,每个字符保留位数

     session.save_path = "/var/lib/php/session" #session id存放路径

    可以分层存放phpsession,更高效率的去查找session文件

      格式: session.save_path = "N;MODE;/path"

    -- N定义目录层数(例如2,目录需手动创建)

    -- MODE定义单目录最大会话文件数量(默认8进制600)

    配置好之后,需要按自定义的目录层数,需结合hash_bits_per_character参数来生成目录结构

    #!/bin/bash
    perl -e '
           $dir="./phpsession";
           @N=(0..9,"a".."z");
           for $i (0..$#N) {
                   mkdir "$dir/$N[$i]";
                   for $j (0..$#N) {
                           mkdir "$dir/$N[$i]/$N[$j]";
                           for $k (0..$#N) {
                                   mkdir "$dir/$N[$i]/$N[$j]/$N[$k]";
                           }
                   }
           }'

    PS:

     4 bits: 0-9, a-f

     5 bits: 0-9, a-v

     6 bits: 0-9, a-z, A-Z, "-", ","

  • 相关阅读:
    安装系统时碰上hal.dll文件丢失或损坏问题
    系统无法停止USB接口的“通用卷”的解决方法
    提取嵌入excel或word中flash的VBA代码
    打印机的PCL驱程和PS驱程的区别!
    spoolsv.exe占用资源的解决方法
    检测硬盘与内存中的隐藏病毒
    关于Windows默认共享的一些认识
    SmartClient + WebServices 开发 1
    常用 ajax 框架比较摘自网络
    AJAX 框架 Prototype
  • 原文地址:https://www.cnblogs.com/pycode/p/6508430.html
Copyright © 2011-2022 走看看