[php] $ _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에 설정되어 있습니다. 일반적으로 파일은 특정 디렉토리에 파일로 저장됩니다.