过程:客户端请求服务器,服务器session_start生成一个session_id命名的session文件用来存储session变量和标记会话,并把session_id传给客户端(通过cookie或者url),本次请求结束时候会保存数据到session文件并结束会话,下次请求过来如果带session_id会吧对应名称的session文件的变量赋值给$_SESSION
定义:
session:用来记录客户端/浏览器的会话信息
$_SESSION:保存当前脚本会话的session变量,没错是当前脚本,请求结束就没了
session_start():启动一次会话或重用上次开启的会话,同时会设置文件锁,其他请求进入锁等待
注意:如果用两次session_start会报错说前面已经开启一个会话
原因:session_start()调用的时候会生成一个session文件并锁定,可以用session_status判断会话状态或者@session_start屏蔽错误
session_write_close():保存session数据到文件并结束当前session,下次想再写session数据可以再session_start(),这就解决了同一个客户端并发请求导致session阻塞的问题
结论:session主要是用来识别用户身份,在确认完身份后最好调用session_write_close()关闭session,避免造成阻塞