php session实现原理分析

Posted 时光飞溅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php session实现原理分析相关的知识,希望对你有一定的参考价值。

http://www.jb51.net/article/77726.htm

第一次会话时会有Set-Cookie响应头返回,设置上phpSESSID cookie

  1. Cache-Control:
    no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  2. Connection:
    Keep-Alive
  3. Content-Length:
    4865
  4. Content-Type:
    text/html; charset=utf-8
  5. Date:
    Mon, 09 Apr 2018 03:24:55 GMT
  6. Expires:
    Thu, 19 Nov 1981 08:52:00 GMT
  7. Keep-Alive:
    timeout=5, max=99
  8. Pragma:
    no-cache
  9. Server:
    ***********************************************
  10. Set-Cookie:
    PHPSESSID=710f5dca0eb5ded010b840603c469f2d; path=/
  11. X-Powered-By:
    **********

之后的请求都会带上这个cookie作为标识,从而php能够从服务端的seesion管理中根据seesionid找到该回话的信息

  1. Accept:
    image/webp,image/apng,image/*,*/*;q=0.8
  2. Accept-Encoding:
    gzip, deflate
  3. Accept-Language:
    zh-CN,zh;q=0.9
  4. Connection:
    keep-alive
  5. Cookie:
    PHPSESSID=710f5dca0eb5ded010b840603c469f2d
  6. Host:
    production.whport.com.cn:30000
  7. Referer:
    http://production.whport.com.cn:30000/SON_EXAM/user/login.php
  8. User-Agent:
    Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

关了浏览器,PHPSESSID cookie 也没设置生存期,自然这个会话就没了。

如果设置了 PHPSESSID cookie 生存期,那么下次打开浏览器还会带着上次的PHPSESSID cookie,自然可以实现保持登录。

当然php服务端要设置session有效期

以上是关于php session实现原理分析的主要内容,如果未能解决你的问题,请参考以下文章

php会话(session)实现原理

解析 PHP 中 session 的实现原理以及大网站应用应该注意的问题

php 总结(13) 验证码实现原理

Mybatis源码阅读之--本地(一级)缓存实现原理分析

PHP函数的实现原理及性能分析

PHP 探针实现原理分析