sourcecode

PHP 세션은 어떻게 작동합니까?('사용방법'이 아닙니다.")

copyscript 2022. 12. 26. 20:32
반응형

PHP 세션은 어떻게 작동합니까?('사용방법'이 아닙니다.")

세션 파일은 보통 다음과 같이 저장됩니다./tmp/서버 및 이름 지정sess_{session_id}내용을 보고 있는데, 실제로 어떻게 작동하는지 알 수 없습니다.

파일에서 변수 이름 및 내용을 쉽게 가져올 수 있습니다.하지만 PHP는 어떤 세션이 누구의 것인지 어떻게 알 수 있을까요?

session_id는 완전히 랜덤으로 보이며, 1개의 IP 주소로 여러 명의 사용자를 가질 수 있습니다.또한 여러 브라우저 창이 열려 있는 경우 각 사용자에게 여러 개의 세션을 설정할 수 있습니다.

그렇다면, 어떻게 사람을 구조할까요?

일반적인 상황에서:

  • 세션 ID 는 세션 생성 시 사용자에게 전송됩니다.
  • 쿠키에 저장됩니다(디폴트로는PHPSESSID)
  • 이 쿠키는 브라우저에 의해 각 요청과 함께 서버로 전송됩니다.
  • 서버(PHP)는 session_id가 포함된 쿠키를 사용하여 해당 사용자에 대응하는 파일을 확인합니다.

세션 파일 내의 데이터는 다음 콘텐츠입니다.$_SESSIONserialize(즉, serialize 등의 함수를 사용하여 문자열로 표시됨), 파일이 PHP에 의해 로드될 때 serialize가 해제되어 파일을 채웁니다.$_SESSION어레이를 설정합니다.


세션 ID가 쿠키에 저장되지 않고 URL로 전송되는 경우도 있지만, 요즘은 거의 없습니다.


자세한 내용은 매뉴얼의 세션 처리 섹션을 참조하십시오. 이 섹션에서는 유용한 정보를 제공합니다.

예를 들어, 세션 ID 전달에 대한 페이지가 있습니다. 이 페이지는 세션 ID가 페이지 간에 전달되는 방법, 쿠키 또는 URL에서 전달되는 방법 및 여기에 영향을 미치는 구성 선택사항을 설명합니다.

PHP 세션 작동 방식

  • 먼저 PHP는 16바이트 길이의 고유 식별자 번호(예: 32개의 16진수 문자로 구성된 문자열로 저장됨)를 만듭니다.a86b10aeb5cd56434f8691799b1d9360를 참조해 주세요.

  • PHPSESSID 쿠키는 고유 식별 번호를 사용자의 브라우저에 전달하여 해당 번호를 저장합니다.

  • 서버에 sess_prefix와 같은 이름의 고유 식별 번호를 사용하여 새 파일이 생성됩니다(즉,sess_a86b10aeb5cd56434f8691799b1d9360.)

  • 브라우저는 각 요청과 함께 해당 쿠키를 서버로 보냅니다.

  • PHP가 PHPSESSID 쿠키에서 고유 식별 번호를 얻으면 PHP는 임시 디렉토리를 검색하여 해당 번호를 파일 이름과 비교합니다.두 세션이 동일한 경우 기존 세션을 가져오고 그렇지 않은 경우 해당 사용자의 새 세션을 만듭니다.

사용자가 브라우저를 닫거나 사이트를 나가면 세션이 파기됩니다.또한 서버는 미리 정해진 세션 시간이 경과한 후 세션을 종료합니다.다음은 PHP가 세션을 처리하기 위해 사용하는 간단한 메커니즘 단계입니다.PHP SESSION이 어떻게 작동하는지 이해하는데 도움이 되었으면 합니다.

세션 ID는 실제로 랜덤이며 설정에 따라 쿠키 또는 URL로 전달됩니다.이 PHPSESSID=xxxx는 일부 URL에서 이미 확인되었을 수 있으며, 해당 이름의 쿠키도 있습니다.

PHP session_start() 세션 시작setcookie() session_start() HTML을 사용합니다.예요.<?php session_start( );?><html><head>는 임의의 의 컴퓨터에되어 있는 입니다). ........etc session_start()는 ID입니다. PHP 할 수 회사는 cookie는 PHPSESSID를 사용합니다.따라서 PHP 코드에서 세션 ID를 참조하려면 변수 $PHPSESSID를 참조해야 합니다(쿠키 이름인데 쿠키에서 기억하십니까?).

언급URL : https://stackoverflow.com/questions/1535697/how-do-php-sessions-work-not-how-are-they-used

반응형