php - 关于session进一步的理解问题,session原理和回收机制。
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 13:02:04
0
2
414

今天复习session,有了更进一步的理解,同时也有几个疑惑,请大家帮忙分析一下哈。

  1. 第一个问题,在php里,session是有垃圾回收机制的,原理是触发多少次session_start就可能触发垃圾回收机制。那么我的问题是,如果我的session已经过了1440秒,但是此时没有立即触发回收,可能5分钟内也没触发,此时我还能获取到session的数据么?

  2. 第二个问题,关于session的过期原理,书本上说的都说是按照session文件的修改时间。我的疑问如下:1)我普通访问一个网站,在没有修改session数据的情况下,是不是在1440秒后准确退出。2)还是说我每刷新一次网页,session文件都会修改filemtime呢?session的执行原理是怎样的。

  3. 第三个问题,就是php的session_set_save_handler设置问题了,只有知道了session是怎么处理filemtime的,才能写好session_set_save_handler中的read方法,因为如果是每刷新一次网页就算修改filemtime的话,势必要在read中修改filemtime吧。

过去多啦不再A梦
过去多啦不再A梦

모든 응답 (2)
阿神
  1. 획득한 코드는 PHP를 통해 읽기 때문에 원칙적으로 얻을 수 없으며, 읽기 프로세스에서 만료 여부를 다시 확인하므로 만료되면 여전히 얻을 수 없습니다.

  2. 1) php.ini에 구성된 시간은 정확하고 유효하지 않습니다. 기본값은 1440입니다. 이 설정은 프로그램에서 수정할 수 있지만 여전히 구성 파일을 수정하는 것이 좋습니다. 왜 옳고 그름이 무효하다고 하는가? PHP는 메모리에 상주하지 않기 때문에 특정 예약된 작업이 트리거되는지 확인하기 위해 각 요청을 사용해야 합니다. 두 번째는 각 가비지 수집으로 인한 성능 손실을 줄이기 위한 것입니다. 가비지 수집 확률은 각각 session.gc_probability 및 session.gc_pisor입니다. 예를 들어 1/100이면 최소 100개의 요청에 대해 한 번만 트리거됩니다.
    2) 새로 고칠 때마다 파일 시간이 변경됩니다.

  3. Laravel 프레임워크의 세션 구현을 확인했습니다. 다음은 파일 저장 및 데이터베이스 저장 형식입니다.

으아아아 으아아아

파일 시간 새로 고침과 유사한 관련 코드가 발견되지 않았습니다.

    仅有的幸福

    테스트 후 파일 저장의 경우 session.gc_maxlifetime을 30초로 설정하세요. 30초를 초과해도 세션 데이터가 해제될 수 있습니다. 그리고 다음 새로 고침 경우 filemtime은 실제로 현재 항목으로 변경됩니다.

    누구나 이유를 설명하고 맞춤 저장소를 Memcache로 변경할 수 있나요? 아니면 데이터베이스가 파일과 동일한 형식으로 저장되나요?

      최신 다운로드
      더>
      웹 효과
      웹사이트 소스 코드
      웹사이트 자료
      프론트엔드 템플릿
      회사 소개 부인 성명 Sitemap
      PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!