[메모]쿠키(Cookie)에 대하여

쿠키(Cookie)


쿠키 설정

setcookie("변수명", "변수값", "유지할 시간"); // 시간은 초단위


쿠키 삭제

값을 공백으로하고, 시간을 현재시간보다 이전으로 돌리면 삭제됨

setcookie("변수명", "", time() - 3600);


쿠키를 받을 때 

$data['cookie'] = $_COOKIE['cookie'];


단점

보안에 취약하다.(클라이언트에 보관되므로 유출 우려가 있음 / 데이터 전송도중 유출될 우려가 있음)

대안으로 서버상에 보관할 수 있는 세션을 사용

기타

쿠키는 HTTP의 상태처리를 위해 사용하는 기술이다.

HTTP는 태생이 무상태(상태를 가질 수 없음)이므로, 인증이나 결제 같은 웹애플리케이션을 만들기 위해서는 한계가 따른다.

이를 해결하기 위한 기술인 것이다.

쿠키를 설정하면 서버에서 쿠키에 대한 값을 넘겨주고, 브라우저에서는 이 값을 같은 서버에 접속할 때마다 보내어 상태를 가질 수 있다.


쿠키는 클라이언트에 보관되며,

도메인(같은 서버) 하나당 20개 까지 보관 가능하며,

하나의 쿠키는 이름과 값을 합해 4K(4096 byte) 까지 사용할 수 있다.

또한 클라이언트에서 보관 할 수 있는 쿠키의 최대 개수는 300개 이다.


재미로 보는 쿠키의 어원

미국이나 캐나다의 중국 요리점에서 식후에 나오는 행운의 쿠키(Fortune Cookie)에서 유래했다는 설이 있음.

행운의 쿠키는 저마다 다른 말이 적힌 종잇조각이 들어 있다. 유닉스(UNIX)시스템 등의 서버에 로그인 했을 때, 격언이나 운세등 매번 다른 메시지가 표시되는 기능이 있는데, 이처럼 서버에서 클라이언트에게 보내는 짧은 메시지를 행운의 쿠키에 빗대 쿠키라고 부르게 되었다는 것이다.

그래서 HTTP에서도 웹 서버에서 클라이언트로 보내는 메시지(데이터) 또한 쿠키라고 부르는 듯하다.


참고자료

프로가 되기위한 웹 기술 입문(P.103)


+ Recent posts