세션 변수에 대한 제한이 있습니까?
제목에서 알 수 있듯이 세션 변수에 대한 제한 (있는 경우)이 있습니까? 아니면 일반적인 변수 로 간주되어 동일한 양의 데이터를 저장할 수 있습니까?
최대 길이, 최대 값 등과 같은 변수 유형 외에 다른 제한이 있는지 찾고 있습니다.
추신 : 질문이 명확하지 않은 경우 알려주십시오.
미리 감사드립니다!
@Thariama가 말했듯이 변수 수에는 제한이 없습니다. 또한 세션에 저장할 수있는 데이터 양에는 제한이 없습니다 (세션 크기가 수십 MB 인 것을 보았습니다).
세션의 크기가 커짐에 따라 여러 가지 단점이 있습니다. PHP 5는 전체 세션을 메모리로 역 직렬화합니다 session_start()
(기본 세션 핸들러 사용- 물론 솔루션을 직접 만들 수 있음 ). 20MB 세션과 50 명의 동시 사용자를 사용하면 스크립트가 디스크 액세스 속도에 의해 심각하게 제한되기 시작합니다 ( "스크립트 시작은 당밀처럼 느립니다"-세션만으로도 GB의 RAM을 차지하게됩니다). 결국, 우리는 RAM에 가능한 한 많은 세션을 유지하기 위해 박스를 전용했고, 프런트 엔드 박스는 NFS를 통해 세션에 액세스했습니다 (우리의 경우에는 도움이되었지만 이는 과잉 일 수 있음).
많은 동시 사용자 및 디스크의 세션 저장소에 대해 세션 임시 파일의 수는 파일 시스템 제한 (예 : stat()
성능 문제가 발생하기 전에 한 디렉토리에 파일이 몇 개있을 수 있는지 ) 또는 기타 제한 (한 번 발견 한 상자가 동시에 4096 개의 열린 파일 만 허용하도록 구성된 어려운 방법). 이 중 어느 것도 실제로 세션별로 다르지 않지만 세션 처리에 의해 트리거 될 수 있습니다.
아니요, 세션이 가질 수있는 공간 (또는 세션이 보유 할 수있는 변수 수)에는 제한이 없습니다. 유일한 제한은 컴퓨터의 사양이며 php.ini에서 사용 가능한 memory_limit에 의해 정의됩니다. 이 공간은 모든 사용자의 모든 세션에서 공유됩니다.
웹 서버에 따라 완전히 다릅니다. Apache의 경우 여기를보십시오.
http://httpd.apache.org/docs/trunk/mod/mod_session.html
mod_session_dbd 를 사용하여 세션을 데이터베이스 에 저장할 수도 있습니다 . 따라서 세션 당 1 개의 파일과 같은 물리적 한계를 극복 할 수 있습니다. 또한 확장 성을 위해 특정 서버 또는 서버 그룹에 저장된 사용자 별 세션을 추적하도록 Apache를 구성 할 수 있습니다.
간단한 대답은 아니오입니다. (즉, 다른 PHP 변수보다 더 많은 제한이 없습니다. 메모리에 맞아야합니다.)
그러나 $_SESSION
데이터는 기본적으로 세션 당 하나의 파일에 직렬화 된 데이터로 어딘가에 저장 된다는 점에 유의 하십시오. 그래서 실질적인 한계가 있습니다. .NET을 사용하는 모든 페이지의 데이터 저장소에서로드 / 저장되므로 막대한 정보를 저장하고 싶지 않을 것 session_start()
입니다.
참조 URL : https://stackoverflow.com/questions/4274955/are-there-limits-for-session-variables
'programing' 카테고리의 다른 글
Uber Android와 같이지도에서 마커 회전 및 애니메이션 이동 (0) | 2021.01.15 |
---|---|
C ++, C로 Android 프로그래밍을 할 수 있습니까? (0) | 2021.01.15 |
Mac OS X 10.6.7 Java 경로 현재 JDK 혼동 (0) | 2021.01.15 |
날짜 명령이 Linux 사양을 따르지 않음 (Mac OS X Lion) (0) | 2021.01.15 |
ID에 마침표가 포함 된 경우 ApiController가 404를 반환합니다. (0) | 2021.01.15 |