>백엔드 개발 >PHP 문제 >PHP에서 쿠키와 세션의 차이점은 무엇입니까

PHP에서 쿠키와 세션의 차이점은 무엇입니까

青灯夜游
青灯夜游원래의
2021-12-02 18:10:355705검색

차이점: 1. 쿠키는 브라우저에 저장되어 상대적으로 안전하지 않지만 세션은 서버에 저장되어 상대적으로 안전합니다. 2. 쿠키에 의해 저장되는 데이터에는 수량 및 크기 제한이 있지만 세션에는 그렇지 않습니다. 3. 쿠키에 의해 저장되는 데이터는 문자열 형태이며, 세션에 의해 저장되는 데이터는 객체 형태입니다.

PHP에서 쿠키와 세션의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

시스템 운영 및 유지 관리 또는 PHP 개발자와의 인터뷰에서 세션과 역할에 대한 질문을 자주 받습니다. PHP의 쿠키는 차이점이 있나요? 아래에 요약해 보겠습니다.

쿠키는 클라이언트에 의해서만 생성, 관리 및 사용됩니다. PHP는 클라이언트에게 쿠키 생성 방법, 만료 시기 등을 묻는 지침만 발행하지만 클라이언트가 반드시 PHP의 지침을 따르지는 않을 수도 있습니다.

쿠키는 그다지 안전하지 않습니다. 범죄자는 로컬 쿠키를 분석하여 쿠키 스푸핑을 수행할 수 있습니다. 보안상의 문제를 고려하여 중요한 사용자 정보는 Session에 저장하는 것을 권장하며, 기타 중요하지 않은 정보는 쿠키에 저장할 수 있습니다.

세션은 사용자가 웹사이트에 접속할 때부터 브라우저를 닫을 때까지의 세션으로, 기본적으로 서버 디스크에 파일 형태로 저장되므로 세션을 너무 많이 설정하면 디스크 성능에 영향을 줄 수 있습니다. 또한 메모리 엔진은 읽기 및 쓰기 속도가 빠르기 때문에 메모리 엔진을 사용하여 MySQL에 저장합니다. 이제 Redis를 사용하여 더 빠르고 효율적으로 세션을 처리하도록 지정할 수도 있습니다.

세션 복구 메커니즘은 일반적으로 브라우저가 닫히면 PHP에 의해 자동으로 복구됩니다. 그러나 때로는 만료 시간이 설정되고 브라우저가 닫혀도 세션이 삭제되지 않을 수 있습니다. 여러 디렉터리 설정, 여러 세션을 계층적으로 저장하는 경우에는 PHP 스크립트를 통해 수동으로 세션을 삭제해야 합니다.

일반적으로 쿠키와 세션은 바인딩됩니다. 즉, 사용자가 쿠키를 비활성화하지 않으면 일반적으로 쿠키는 세션 ID와 세션 수명 주기를 저장합니다. 사용자가 쿠키를 삭제하면 일반적으로 시스템이 종료됩니다. 쿠키를 비활성화하지 않고 브라우저 세션을 닫습니다. 세션도 즉시 닫히며, 실패하면 시스템에 다시 로그인해야 합니다.

쿠키와 세션은 일반적으로 사용자를 식별하고, 권한을 인증하고, 간단한 데이터를 저장하고, 쿠키를 사용하여 Single Sign-On을 달성하는 데 사용됩니다.

쿠키에 의해 저장되는 데이터는 브라우저마다 제한이 다릅니다. 일반적으로 동일한 도메인 이름에서 쿠키 변수 수는 20개 이내로 제어되며, 각 쿠키의 값 크기는 4kb 이내로 제어됩니다. 세션 값의 크기나 개수에는 제한이 없지만, 너무 많으면 서버에 부담이 커집니다. 또한 Cookie가 저장한 내용은 문자열이고 Session이 저장한 데이터는 객체입니다.

세션은 동일한 사용자가 웹사이트를 방문하는 동안 모든 세션에 액세스할 수 있으며, 쿠키에 경로 매개변수가 설정된 경우 동일한 웹사이트의 다른 경로에 있는 쿠키가 서로 상호 작용할 수 없습니다.

COOKIE와 SESSION의 차이점

(1) 저장 위치: 쿠키는 상대적으로 안전하지 않은 클라이언트 브라우저에 저장됩니다. 세션 내용이 포함된 파일은 일반적으로 서버 아래의 tmp 폴더에 저장됩니다. 루트 디렉토리. 상대적으로 안전합니다.

(2) 수량 및 크기 제한: 쿠키에 의해 저장되는 데이터는 브라우저마다 제한이 다릅니다. 일반적으로 동일한 도메인 이름에서 쿠키 변수의 수는 20개 이내로 제어되며 각 쿠키 값의 크기는 제어됩니다. 4kb 이내. 세션 값의 크기나 개수에는 제한이 없지만, 너무 많으면 서버에 부담이 커집니다.

(3) 내용 차이: 쿠키가 저장한 내용은 문자열이고, 세션이 서버에 저장한 데이터는 객체입니다.

(4) 경로 차이: 세션은 동일한 사용자가 웹사이트를 방문하는 동안 경로를 구분할 수 없으며 쿠키에 경로 매개변수가 설정된 경우 동일한 웹사이트의 다른 경로에 액세스할 수 있습니다. 각각은 서로 접근할 수 없습니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 쿠키와 세션의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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