>  기사  >  백엔드 개발  >  PHP의 세션 임시 파일 및 캐시 지침

PHP의 세션 임시 파일 및 캐시 지침

伊谢尔伦
伊谢尔伦원래의
2017-04-28 16:44:053965검색

1. 세션 임시 파일

서버에서 모든 사용자 세션을 임시 디렉터리에 저장하면 세션의 보안과 안전성이 저하됩니다. 서버 효율성, 서버에 저장된 사이트를 여는 속도가 매우 느립니다. Windows에서는 PHP의 기본 세션 서버 파일이 C:WINDOWSTemp에 저장됩니다. 동시 액세스 규모가 크거나 세션이 너무 많이 생성되면 동일한 디렉터리에 sess_xxxxxx와 유사한 세션 파일이 너무 많이 남게 됩니다. 성능 저하를 일으키고 공격으로 인해 파일 시스템 오류가 발생할 수 있습니다. 이러한 상황에서는 PHP 자체가 더 나은 솔루션을 제공합니다. PHP에서는 session_save_path() 함수를 사용하면 이 문제를 해결할 수 있습니다.

세션 임시 파일을 저장하기 위해 PHP 함수 session_save_path()를 사용하면 임시 파일 저장으로 인해 발생하는 서버 효율성 저하 및 사이트 열기 속도 저하 문제를 완화할 수 있습니다.

<?php
$path = &#39;./tmp/&#39;;         //设置 session 存储路径
session_save_path($path);
session_start();
$_SESSION[&#39;username&#39;] = true;
?>

참고 : session_save_path() 함수는 session_start() 함수보다 먼저 호출되어야 합니다.

2. 세션 캐싱

세션 캐싱은 클라이언트의 임시 인터넷 파일 폴더 아래에 웹 페이지의 콘텐츠를 임시로 저장하는 것입니다. 캐시 시간을 설정할 수 있습니다. 웹 페이지를 처음 탐색할 때 페이지 내용의 일부가 지정된 기간 내에 클라이언트의 임시 폴더에 임시 저장되므로 다음에 이 페이지를 방문할 때 직접 사용할 수 있습니다. 캐시의 콘텐츠를 읽어 웹사이트 검색 효율성을 향상시킵니다.

세션 캐시 기능

(1) 데이터베이스 액세스 빈도를 줄입니다. 애플리케이션은 데이터베이스에서 데이터를 검색하는 것보다 훨씬 빠르게 캐시에서 영구 개체를 읽을 수 있습니다.

(2) 캐시에 있는 영구 개체 간에 순환 관계가 있는 경우 세션은 개체 그래프에 액세스하는 무한 루프가 없고 무한 루프로 인해 발생하는 JVM 스택 오버플로가 없는지 확인합니다.

(3) 데이터베이스의 관련 레코드가 캐시의 레코드와 동기화되는지 확인하세요. 세션이 캐시를 지울 때 자동으로 더티 데이터 검사(dirty-check)를 수행합니다. 세션 캐시의 개체가 데이터베이스의 해당 레코드와 일치하지 않는 것으로 확인되면 데이터베이스가 업데이트됩니다. 최신 객체 속성.

세션 캐싱은 session_cache_limiter() 함수를 사용하며 해당 구문 형식은 다음과 같습니다.

session_cache_limiter(cache_limiter)

cache_limiter 매개변수는 공개 또는 비공개입니다. 동시에 세션 캐싱은 서버측 캐싱이 아니라 클라이언트측 캐싱을 의미합니다.

캐시 시간 설정은 서버에 표시되지 않으며 해당 구문 형식은 session_cache_expire() 입니다.

session_cache_expire(new_cache_expire);

cache_expire 매개변수는 세션 캐시 시간(분)입니다.

참고: 이 두 세션 캐시 함수는 session_start() 함수 이전에 호출되어야 합니다. 그렇지 않으면 오류가 발생합니다.

다음은 세션 캐싱 페이지 처리 예시입니다.

<?php
 session_cache_limiter(&#39;private&#39;);
 $cache_limit = session_cache_limiter();    //开启客户端缓存
 session_cache_expire(30);
 $cache_expire = session_cache_expire();    //设定客户端缓存时间
 session_start();
?>

위 내용은 PHP의 세션 임시 파일 및 캐시 지침의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.