PHP的session_start和session_write_close和$_SESSION和session阻塞问题

过程:客户端请求服务器,服务器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,避免造成阻塞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值