|
쿠키 |
세션 |
저장되는 곳 |
클라이언트 |
서버 |
저장되는 형식 |
텍스트 형식 |
Object형 |
만료시점 |
쿠키 저장시 설정가능 (설정 안하면 브라우저 종료시 소멸) |
정확한 시점을 알수 없다. |
리소스 |
클라이언트의 리소스 사용 |
서버의 리소스 사용 |
용량 제한 |
한도메인당 20개 쿠키 하나당 4KB 총 300개 |
서버가 허용하는 한 용량에 제한 없음 |
■ 저장되는 곳
쿠키는 클라이언트의 웹 브라우져가 지정하는 메모리 또는 하드디스크에 저장됩니다. 하지만 세션은 생성된 후 서버의 메모리에 저장됩니다. 그렇지만 클라이언트 측에서 쿠키사용을 하지 않도록 브라우저를 세팅해 놓으면 쿠키는 저장되지 않습니다.
■ 만료시점
쿠키는 저장할 때 expires 속성을 정의해서 무효화 되어 삭제될 날짜를 정확히 지정할 수 있습니다. 하지만 세션은 클라이언트측에서 로그아웃 하거나, 설정한 시간동안 클라이언트측의 반응이 없을 경우에만 무효화되므로 정확한 만료시점은 알 수 없습니다.
■ 리소스
쿠키는 클라이언트 측에 저장되고 클라이언트의 메모리를 사용하기 때문에 서버상의 자원을 쓰지 않습니다. 하지만 쿠키는 서버에 저장되고, 서버의 메모리로 로딩되기 때문에 세션이 생성될 때마다 그만큼의 리소스를 차지하게 됩니다.
■ 용량 제한
쿠키는 클라이언트도 모르게 접속되는 사이트에 의하여 설정될 수 있습니다. 따라서 쿠키로 인하여 문제가 발생하지 않도록 하기 위하여 한 도메인당 20개 총 300개 그리고 하나의 쿠키당 4kb로 저장 용량을 제한해 놓았습니다. 하지만 세션은 클라이언트가 접속하면 서버에 의해서 생성되므로 그 개수나 용량에 제한이 없습니다.
이렇게 쿠키와 세션은 서버와 클라이언트간의 상태유지, 자원사용의 효율 그리고 개인정보 보호 등 여러 관점에서 살펴보면, 나름대로 장점과 단점을 가지고 있습니다. 따라서 사이트의 특성에 따라서 세션과 쿠키의 장점을 살려 적절히 사용한다면, 보다 효율적인 사이트를 구축할 수 있을 것입니다.
'Coding > PHP' 카테고리의 다른 글
날짜 배열 담기, 날짜 정렬 (0) | 2017.07.04 |
---|---|
날짜 계산 (0) | 2015.01.30 |
하이라트 테스트 (0) | 2015.01.30 |
[PHP] 계층형 게시판 - 5. 글보기 (0) | 2015.01.30 |
[PHP] 계층형 게시판 - 4. 리스트 (0) | 2015.01.30 |