>백엔드 개발 >PHP 튜토리얼 >PHP 세션 및 쿠키 요약 공유

PHP 세션 및 쿠키 요약 공유

小云云
小云云원래의
2018-03-12 11:48:381367검색

이 기사는 주로 PHP 세션 및 쿠키에 대한 요약을 공유하므로 도움이 되기를 바랍니다.

1. 쿠키와 세션의 관계
쿠키와 세션 솔루션은 각각 클라이언트와 서버에 속하지만 서버 세션의 구현은 대략 다음과 같이 클라이언트의 쿠키에 따라 다릅니다. 세션 메커니즘 실행
2. 해당하는 고유한 session_id를 생성합니다. (이 session_id를 구문 분석하고 처리하면 서버가 세션에 저장된 파일을 찾은 다음 파일에서 세션 정보를 추출할 수 있습니다.) 076402276aae5dbec7f672f8f4e5cc81
3 . 서버는 이 session_id를 클라이언트에게 보냅니다.
클라이언트는 session_id를 받아 쿠키와 함께 저장 컨테이너로 저장합니다.
4. 클라이언트는 요청할 때마다 이 session_id를 서버로 가져옵니다.
서버는 다음과 같이 세션을 구문 분석합니다. 그 자체

참고: 세션에 정보를 저장하는 방법은 캐시, 데이터베이스, 파일 등 여러 가지가 있지만 기본값은 파일 형식으로 저장하는 것입니다. . .

2. 세션 생성 및 소멸 시점

세션 생성 시 쿠키가 생성되며, 해당 MaxAge는 -1이므로 메모리에만 존재할 수 있습니다. 브라우저에서 쿠키를 비활성화해도 이 쿠키는 계속 생성됩니다.
브라우저에서 제출한 요청에 jsessionid 매개변수 또는 쿠키 헤더가 포함되어 있으면 컨테이너는 더 이상 새 세션을 생성하지 않고 연결을 위해 이전 세션만 찾습니다. 여기에는 두 가지 상황이 있습니다.
1) jsessionid를 사용하세요. 이 값이 기존 세션에 해당할 수 있으면 새 세션이 생성되지 않습니다. 그렇지 않으면 새 세션이 생성됩니다.
2) 쿠키를 사용하세요. 이 값이 기존 세션에 해당할 수 있으면 새 세션이 생성되지 않지만 해당 세션이 없으면(예: 위의 서버를 다시 시작한 후) 컨테이너는 마치 쿠키 정보를 기반으로 해당 세션을 복원합니다. 이전에도 마찬가지였습니다.
3. 세션은 언제 소멸되나요?

브라우저를 닫았다가 다시 열고 서버에 연결하면 서버가 새 세션을 할당합니다. 이는 새 세션이 시작된다는 의미입니다. 그렇다면 원래 세션이 파괴되었나요? 저는 작은 실험을 했습니다:

세션 만들기:

session_start();//세션 변수를 등록하고 $_SESSION["username"] = "hello"를 할당합니다//생성된 session_idecho session_id()를 출력합니다.


페이지를 방문하여 세션 ID를 가져오고 브라우저를 닫습니다.

session_id를 기반으로 세션 개체를 생성합니다

$session_id = "qpk6onnn3husvotnke030ftcm4";
session_id($session_id);
session_start();
echo $_SESSION["username"];  //结果取出session

So


브라우저가 닫혀도 원래 세션은 삭제되지 않습니다. 실행되지 않음), 타임아웃될 때까지 기다립니다. 만료 후 세션은 삭제됩니다. 브라우저를 닫으면 클라이언트 메모리의 원래 세션과 관련된 쿠키만 지워집니다. 연결을 위해 브라우저를 다시 열면 브라우저는 쿠키 정보를 보낼 수 없으므로 서버는 이를 새로운 세션이라고 생각하게 됩니다. 따라서 브라우저를 닫을 때 정리하고 싶은 세션과 관련된 특정 리소스(예: 임시 파일 등)가 있는 경우 세션이 자동으로 정리될 때까지 기다리는 대신 서버에 특정 요청을 보내야 합니다. 청소했다.

관련 권장사항:

php는 html과 세션 및 쿠키를 사용하여 회원 로그인 등록 페이지를 구현합니다.

PHP에서 세션 및 쿠키 데이터 값 전송 기능을 구현합니다.

php는 세션과 쿠키의 차이점을 학습합니다.

위 내용은 PHP 세션 및 쿠키 요약 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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