PHP 세션 제어: Session 및 Cookie자세한 설명, session cookie
1 세션 제어란 무엇입니까
HTTP는 상태 비저장 프로토콜이며 두 가지를 유지하는 내장 메커니즘이 없습니다. 거래 간 상태. 사용자가 한 페이지를 요청한 후 다른 페이지를 요청하면 HTTP는 두 요청이 모두 동일한 사용자로부터 왔다는 것을 알려주는 방법이 없습니다.
세션 제어의 아이디어는 웹사이트의 세션에 따라 사용자를 추적하여 사용자 로그인을 쉽게 지원하고 인증 수준 및 개인 선호도에 따라 해당 콘텐츠를 표시할 수 있도록 하는 것입니다. 세션 중 이 사용자 동작은 장바구니를 구현할 수도 있습니다.
2. 기본 세션 기능 이해하기
PHP 세션은 암호화된 난수인 고유 세션 ID에 의해 구동됩니다. 이는 PHP에 의해 생성되며 세션 수명 주기 동안 클라이언트에 저장되며 사용자 컴퓨터의 쿠키에 저장되거나 URL을 통해 네트워크로 전달될 수 있습니다.
세션 ID는 세션 변수가 되는 특정 변수를 등록할 수 있는 키와 같습니다. 이러한 변수의 내용은 서버 측에 저장됩니다. 세션 ID는 클라이언트가 볼 수 있는 유일한 정보입니다. 클라이언트가 특정 웹 사이트 링크 중에 쿠키나 URL을 통해 세션 ID를 볼 수 있는 경우 해당 세션에 대해 서버에 저장된 세션 변수에 액세스할 수 있습니다. 기본적으로 세션 변수는 서버의 일반 파일에 저장됩니다.
URL에 세션 ID를 저장하세요. URL에 임의의 숫자 문자열이 있으면 일종의 세션 제어일 수도 있습니다.
쿠키는 세션과 다른 솔루션으로, 여러 트랜잭션에서 상태를 유지하는 동시에 깨끗한 URL을 유지하는 문제도 해결합니다.
세션 제어 프로세스: 사용자가 처음 로그인하거나 사이트의 페이지를 탐색할 때 사이트는 PHP 세션 ID를 생성하고 쿠키를 통해 이를 클라이언트(브라우저)로 보냅니다. 사용자가 사이트의 다른 페이지를 클릭하면 브라우저가 이 URL에 연결되기 시작합니다. 접속하기 전, 브라우저는 로컬에 저장된 쿠키를 먼저 검색하고, 접속 중인 URL과 관련된 쿠키가 있으면 서버에 제출합니다. 최초 로그인 또는 최초 접속 시, 해당 사이트의 URL과 관련된 쿠키(저장된 세션 ID)가 생성되므로, 이용자가 본 사이트에 다시 접속할 때 사이트는 이 세션 ID를 통해 이용자를 식별할 수 있습니다. 이 세션 ID와 관련된 세션 변수는 트랜잭션 간의 연속성을 유지하기 위해 서버의 세션 파일에서 검색됩니다.
3. 쿠키란 무엇입니까? 쿠키는 서버 측에서 생성되어 클라이언트 브라우저에 다시 기록됩니다. 브라우저는 응답 헤더에 쿠키를 작성하라는 지시를 받아 로컬 임시 폴더에 저장합니다. 쿠키 콘텐츠를 저장하는 쿠키 파일이 생성됩니다. 쿠키 콘텐츠는 키-값 쌍으로 저장되며 키와 값은 모두 문자열일 수 있습니다.
쿠키는 실제로 스크립트를 통해 클라이언트 컴퓨터에 저장할 수 있는 작은 정보 조각입니다. 다음 형식의 특정 데이터가 포함된 HTTP 헤더를 전송하여 사용자 컴퓨터에 쿠키를 설정할 수 있습니다.
Set-Cookie: NAME = VALUE; [expires=DATE;] [path=PATH;] [domain= DOAMIN_NAME;] [보안]
이렇게 하면 값이 VALUE인 NAME이라는 쿠키가 생성됩니다. 이 매개변수를 제외한 다른 모든 매개변수는 선택사항입니다. 만료 필드는 쿠키의 만료 날짜를 설정합니다(만료 날짜가 설정되지 않은 경우 수동으로 삭제하지 않는 한 영원히 유효합니다). 경로 및 도메인 필드가 결합되어 URL 또는 쿠키 관련 URL을 구성합니다. secure 키워드는 일반 HTTP 연결에서는 쿠키가 실행되지 않음을 의미합니다.
브라우저가 URL에 연결되면 먼저 로컬에 저장된 쿠키를 검색합니다. 연결되는 URL과 관련된 쿠키가 있는 경우 브라우저는 이를 서버에 제출합니다.
4. 세션이란 무엇인가요세션은 애플리케이션 서버가 관리하는 서버측 저장 공간으로, 사용자가 서버에 접속하면 서버에서 고유한 세션 ID를 생성하고, 이 세션 ID는 서버측에 접속하기 위한 식별자로 사용됩니다. 세션 저장 공간은 세션 중에 클라이언트에게 부여된 고유한 세션 ID를 사용하여 현재 사용자를 식별하고 다른 사용자와 구별하는 데 사용됩니다. SessionID를 통해 각 액세스 요청을 수락하여 현재 사용자를 식별하고, 사용자의 특정 정보를 추적 및 유지하며, 세션에 숫자 또는 텍스트 정보를 저장할 수 있습니다. 이 정보는 서버 측에 저장됩니다. 물론 세션 ID는 세션 지속성을 위한 세션 정보로 데이터베이스에 저장될 수도 있습니다. 이를 통해 사용자 로그인 수, 온라인 여부, 온라인 시간 등을 추적하여 HTTP 상태 비저장 사물 간의 관계를 유지할 수 있습니다. 세션의 콘텐츠 저장은 키-값 쌍의 목록이며 키는 문자열 유형입니다. 세션 저장이 더 편리하며 값은 객체일 수 있습니다.
세션 중에 세션은 클라이언트와 서버에 각각 두 개의 파일로 저장됩니다. 클라이언트는 세션 ID를 쿠키 모드(기본 저장 방법)로 저장하거나 URL 문자열 형식으로 전달할 수 있습니다. 서버측은 일반적으로 지정된 세션 디렉터리에 텍스트 형태로 저장됩니다. 서버 측에서는 session.use_cookies를 통해 클라이언트가 사용하는 저장 방법을 제어할 수 있습니다. 쿠키 저장 방식으로 정의하면 session.cookie_lifetime을 통해 클라이언트에 저장되는 쿠키의 유효기간을 제어할 수 있다(기본값은 0, 브라우저 종료 시 지워짐). 클라이언트가 쿠키를 사용하여 세션 ID를 저장하는 경우 "임시" 쿠키를 사용하여 저장합니다. (쿠키 이름은 PHPSESSID입니다. 자세한 내용은 Firebug를 통해 알아볼 수 있습니다. 이름은 php.ini session.name을 통해 변경할 수 있습니다. ), 사용자가 페이지를 제출하면 세션 데이터에 액세스하기 위해 이 SessionID가 서버에 제출됩니다. 이 프로세스에는 개발자 개입이 필요하지 않습니다.
5. SESSION과 COOKIE의 차이점 및 연결
동일한 점: 둘 다 HTTP 무국적 문제를 해결할 수 있으므로 동일한 클라이언트가 정보를 저장 및 설정하고 웹 사이트 방문에 대한 여러 요청을 통해 연결을 설정할 수 있습니다.
차이점: 간단히 말하면 쿠키 정보는 클라이언트 측에 저장되고, 세션 정보는 서버 측에 저장됩니다.
Session은 키-값 쌍을 사용합니다. 즉, ID는 클라이언트 측에 저장되고, 값은 서버 측에 배치됩니다. 이런 방식으로 사용자의 ID를 사용하여 해당 값을 찾습니다. 값은 서버 측에 배치되며 시간 제한이 있으면 서버가 자동으로 재활용/해제합니다.
쿠키에는 두 가지 방법이 있습니다. 하나는 브라우저의 변수에 값을 저장하고 브라우저를 닫을 때 종료되는 것이고, 다른 하나는 시간이 만료되지 않는 한 하드 디스크에 저장하는 것입니다. 다음 번에 사용됩니다.
Contact: 클라이언트가 쿠키 방식에 따라 저장된 SessionID를 사용할 때 일반적으로 SessionID가 쿠키에 저장됩니다.
참고: 쿠키는 동일한 코어를 가진 브라우저 간에 공유됩니다. Firefox 및 IE와 같이 코어가 다른 브라우저는 공유되지 않습니다(저장 위치가 다르며 물론 공유되지 않습니다). 다른 커널을 사용하는 브라우저는 쿠키를 공유할 수 없으며 다른 세션 ID도 생성합니다.
위 내용은 PHP 세션 제어에 대한 자세한 설명입니다. 도움이 되셨으면 좋겠습니다.
관련 추천:
PHP 세션 제어: 세션 및 쿠키에 대한 자세한 설명, sessioncookie
php 세션 쿠키 제어 및 세션 세션 처리_PHP 튜토리얼
위 내용은 PHP 세션 제어 쿠키 및 세션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!