쿠키(Cookie) 설정하기
CGI 프로그램에서 브라우저로 쿠키를 전송하는 것은 생각보다 매우 간단합니다. 핵심은 쿠키가 Content-type 필드보다 먼저 HTTP 헤더 형태로 전송되어야 한다는 점입니다.
예를 들어, 사용자의 UserID와 Password를 쿠키로 저장하고 싶다고 가정해 보겠습니다. 이 경우 쿠키는 다음과 같이 설정할 수 있습니다.
#!/usr/bin/python print "Set-Cookie:UserID = XYZ;\r\n" print "Set-Cookie:Password = XYZ123;\r\n" print "Set-Cookie:Expires = Tuesday, 31-Dec-2007 23:12:40 GMT;\r\n" print "Set-Cookie:Domain = www.tutorialspoint.com;\r\n" print "Set-Cookie:Path = /perl;\n" print "Content-type:text/html\r\n\r\n" ...........Rest of the HTML Content....
위 예제를 통해 쿠키를 설정하는 기본 원리를 이해하셨을 것입니다. 즉, 쿠키를 설정할 때는 Set-Cookie HTTP 헤더를 사용하며, 각 쿠키마다 하나의 Set-Cookie 헤더를 출력하면 됩니다.
쿠키 속성 이해하기
Expires, Domain, Path와 같은 쿠키 속성은 모두 선택 사항(optional)입니다. 각 속성의 역할은 다음과 같습니다.
- Expires: 쿠키가 만료되는 날짜와 시간을 지정합니다. 이 속성을 생략하면 쿠키는 브라우저 세션이 종료될 때까지 유지됩니다.
- Domain: 쿠키가 유효한 도메인을 지정합니다. 지정하지 않으면 쿠키를 생성한 서버의 도메인으로 설정됩니다.
- Path: 쿠키가 유효한 URL 경로를 지정합니다. 지정하지 않으면 현재 문서가 위치한 디렉터리가 기본값이 됩니다.
주의사항
가장 중요한 점은 쿠키가 반드시 "Content-type:text/html\r\n\r\n"이라는 마법의 라인(magic line)을 출력하기 이전에 설정되어야 한다는 것입니다. HTTP 헤더는 본문(body)보다 먼저 전송되어야 하기 때문에, 이 순서를 지키지 않으면 쿠키가 정상적으로 설정되지 않습니다.