????httpЭ????WEB????????????(?????)??????Э?飬???????????Э?顣??ν?????????????????http?????????http?????????????????????????????WEB????????????Щ???????????????Session???????????????PHP??4.1??????Session?????
????session??????????????????????????????????????м??????С???????????????????????????
????session?洢
???????????????????Session???????????????洢????????????????????????????????????????????????????????????????????????????????洢????????????????

????uid : ?????????????????????
????created : ??????????
????data : ????????????????
????max_age : ???????Ч???
??????????PHP??????session??????????????????????????????:
????1. session id
???????session??????????????????????????????????????????????????????????session????????????η???web???????php??session?????????????????????????????????ID???????session_id??
????2. session data
???????????????session?????????????????????session?????????session?????
????3. session file
????PHP????session???????????????????????session???????????session??????????????php.ini????session.save_path???session???????·????CentOS5.3????????PHP5.1???????/var/lib/php/session???С????session??????????????sess_???????session_id???β??????????session id?vp8lfqnskjvsiilcp1c4l484d3?????session???????sess_vp8lfqnskjvsiilcp1c4l484d3
????4. session lifetime
?????????????session???????????session?????????session??????????????????????????session?????????
??????????????: ????????????web?? PHP??session?????????????????????????????????session ID????????session?????????????????????????????????session???????session????С??????η???????session???????????????session????ж??session?????????μ?session?????????
??????session?洢???php.ini????
????1. session.save_handler = file
??????????/??дsession??????????????files????????PHP??session??????????????????????洢session????
????2. session.save_path =“/var/lib/php/session”
???????????session?????????????????????????????????????????httpd???????????(????apache??www??)д??????????????session?????????????????????php session??????????????????????????????????????????????????????
????????????д??????session.save_path =“N;/path” ????N??????????????ò??????е?session??????????????????У????????????????????????????????session???????а??????(?:???????????????)
????3. session.auto_start = 0
?????????????????????????????????session??????????????????????????session_start()?????????session??
????Session???????
?????????????session_start()?????session????ζ?????????session????????????????????????????????????$_SESSION??????session????????session?????????????????????????д??session????????????$_SESSION?????????????С?????????????????????????д??session?????????????????С???????????????
????????в????????????????????????session?????PHP???????????
????1. session_start()
????????session_start??????session????????session?????????????????session?????????????session???????е???????OOP?????е??ù???????????????????????
????session?????????????????????????$_SESSION?????????????session????????session????????????????????session?????session_start()?????session?????????$_SESSION?У????????μ?session?????????
????2. $_SESSION
?????????????????????????Array???????session?????????session??????????????С???session????????????session????ж????????????????С???session????????????????$_SESSION????д??session?????
????3. session_register()
??????session??????????????????????????????????????session?С???ν??????????????$_SESSION?У???NULL?????????session????????κ?IO????????????$_SESSION????????????????д????session_register(‘varname’)????????session_register($varname)
????4. session_unregister()
??????session_register????????????????session?????????????session???????????????????$_SESSION???????????κ?IO??????
????5. session_unset()
??????session?????????????session????????session???????$_SESSION???????????顣????unset($_SESSION)??????????:unset??????$_SESSION???????????????;??????????????session_unset()????session???????????????$_SESSION???飬??unset()???????????(page)??????????????$_SESSION???顣session_unset()??????????κ?IO??????????$_SESSION???顣
????6. session_destroy()
????????session_start()????????session?????????????????session????ζ??session????????????????session?????????????session_register?? session_unset?? session_register???????????$_SESSION???飬??$_SESSION????????????unset()????????????????session??ζ????δ????????$_SESSION??????????????????????????????????
???????session_destroy()???session?????????session???????????????????sesion???????????????$_SESSION??????????????????IO??????
????7. session_regenerate_id()
????????????????????????·???????μ?session id??????????????????????????????????session????д??session??????????????????????????session??????????б???????ο???9??????????????IO??????????????μ?session??????????μ?session?????????session??????????????????????????????μ?session?????
????8. session_commit()
????session_commit()??????session_write_close()?????????????????????session????????????????session???????????д??session?????????????session_commit()?????д??session????????PHP?????????????????????????????????????????session???????????????????IOд????
????9. end session
????????session?????????????????????????????PHP????????????????????session??????????????session_commit()??session_destroy()???????????????session????????????????????session???????IO?????????????????????????????IOд???????????session????д??session?????session_commit()???????ú??????????????IOд????????session????д??session???????session_destroy()????????????????????д??session??????????????????session???????????????????session_commit()??????session_destroy()?????????$_SESSION???飬?????????$_SESSION???飬???????session_*?????????????session?????????????session??????????????????????????δ???????
???????????????????????????????2???
????????1: ???session?????????????session???????????IO????
<?php
//@file test_session_2.php
session_start();
$pg_uuid = 'ac606826-9620-490b-b850-ea9dbce6cfd5';
//?????????pg_uuid??session????$_SESSION['pg_uuid']??NULL??????$_SESSION
session_register('pg_uuid');
var_dump($_SESSION);
fopen(__FILE__?? "r");
[root@localhost ~]# strace -p `cat /var/run/httpd.pid`
Process 21819 attached - interrupt to quit
...
st_mode=S_IFREG|0644?? st_size=72?? ...}) = 0
open("/var/www/html/test_session.php"?? O_RDONLY) = 17
fstat64(17?? {st_mode=S_IFREG|0644?? st_size=72?? ...}) = 0
lseek(17?? 0?? SEEK_CUR)                  = 0
read(17?? "<p;?php //@file test_session.php s"...?? 8192) = 72
read(17?? ""?? 8192)                      = 0
read(17?? ""?? 8192)                      = 0
close(17)                               = 0
gettimeofday({1270906664?? 11602}?? NULL) = 0
open("/var/lib/php/session/sess_4j38nv7l1fq1bj6n80l6g9cum5"?? O_RDWR|O_CREAT?? 0600) = 17
flock(17?? LOCK_EX)                      = 0
fcntl64(17?? F_SETFD?? FD_CLOEXEC)        = 0
fstat64(17?? {st_mode=S_IFREG|0600?? st_size=0?? ...}) = 0
time(NULL)                              = 1270906664
open("/var/www/html/test_session.php"?? O_RDONLY) = 18
fstat64(18?? {st_mode=S_IFREG|0644?? st_size=72?? ...}) = 0
lseek(18?? 0?? SEEK_CUR)                  = 0
close(18)                               = 0
chdir("/var/lib/php/session")           = 0
pwrite64(17?? ""?? 0?? 0)                  = 0
close(17)                               = 0
setitimer(ITIMER_PROF?? {it_interval={0?? 0}?? it_value={0?? 0}}?? NULL) = 0
writev(16?? [{"HTTP/1.1 200 OK Date: Sat?? 10 A"...?? 385}]?? 1) = 385
write(12?? "192.168.0.98 - - [10/Apr/2010:21"...?? 207) = 207
shutdown(16?? 1 /* send */)              = 0
epoll_wait(15??