development

$ _SESSION 변수는 어디에 저장됩니까?

big-blog 2020. 6. 9. 07:45
반응형

$ _SESSION 변수는 어디에 저장됩니까?


있는가 $_SESSION변수는 클라이언트 또는 서버에 저장?


$_SESSION변수 저장소 의 위치는 PHP의 session.save_path구성에 따라 결정됩니다 . 일반적으로 이것은 /tmpLinux / Unix 시스템에 있습니다. 도메인 phpinfo()의이 콘텐츠가 포함 된 파일을 만들어 100 % 확실하지 않은 경우이 기능을 사용 하여 특정 설정을 봅니다 DocumentRoot.

<?php
    phpinfo();
?>

이 구성 설정에 대한 PHP 문서 링크는 다음과 같습니다.

http://php.net/manual/en/session.configuration.php#ini.session.save-path


이미 언급했듯이 내용은 서버에 저장됩니다. 그러나 세션은 클라이언트에 저장되고 각 요청과 함께 전송되는 session-id로 식별됩니다. 일반적으로 session-id는 쿠키에 저장되지만 URL에 추가 할 수도 있습니다. (이것은 PHPSESSID때때로 볼 수 있는 쿼리 매개 변수입니다)


일반적으로 서버에 저장됩니다. 저장된 위치는 개발자의 책임입니다. session.save_handler구성 변수 및를 사용하여 session_set_save_handler세션이 서버에 저장되는 방법을 제어 할 수 있습니다 . 기본 저장 방법은 세션을 파일에 저장하는 것입니다. 그들이 저장되는 위치는 session.save_path변수에 의해 제어됩니다 .


한 가지 추가 사항 : "/ tmp"가 세션 데이터가 저장된 디렉토리 (기본값 인 것 같음) 인 경우 해당 웹 서버를 재부팅 한 후 "/ tmp로 세션이 지속되지 않습니다. "는 종종 재부팅 중에 제거됩니다. 클라이언트 측 지속성의 개념은 서버의 스토리지 지속성에 따라 달라지며 세션 데이터에 "/ tmp"디렉토리를 사용하면 실패 할 수 있습니다.


데비안에서는 (대부분의 Linux 배포판의 경우가 아닙니까?) / var / lib / php5 /에 저장됩니다. 위에서 언급했듯이 php.ini에서 구성됩니다.


우분투를 사용하고 있으며 세션은 / var / lib / php5에 저장되어 있습니다.


Taylor 씨가 지적했듯이 이것은 보통 php.ini에 설정되어 있습니다. 일반적으로 특정 디렉토리에 파일로 저장됩니다.


우분투 16.10의 경우 세션은 / var / lib / php / session / ...에 저장됩니다.


어떻게 작동합니까? 그것이 나인지 어떻게 알 수 있습니까?

대부분의 세션은 사용자 컴퓨터에서 765487cf34ert8dede5a562e4f3a7e12와 같은 사용자 키 (sessionid라고 함)를 설정합니다. 그런 다음 다른 페이지에서 세션이 열리면 컴퓨터에서 사용자 키를 검색하고 서버를 실행하여 변수를 가져옵니다.

실수로 캐시를 지우면 사용자 키도 지워집니다. ID를 모르므로 더 이상 서버에서 변수를 가져올 수 없습니다.

참고 URL : https://stackoverflow.com/questions/454635/where-are-session-variables-stored

반응형