웹 프로그래밍에서 브라우저로 쿠키를 전송하는 작업은 생각보다 매우 간단합니다. 쿠키는 본문 콘텐츠에 앞서 Content-type 필드 이전에 HTTP 헤더와 함께 전송됩니다. 예를 들어 사용자 ID(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" ...........나머지 HTML 콘텐츠....
위 예제를 통해 쿠키를 설정하는 방법을 충분히 이해하셨을 것입니다. 핵심은 Set-Cookie라는 HTTP 헤더를 사용한다는 점입니다. 서버는 응답 시 이 헤더를 포함하여 브라우저에 쿠키를 저장하도록 지시합니다.
주요 쿠키 속성
- Expires: 쿠키의 만료 날짜와 시간을 지정합니다. 이 속성을 생략하면 쿠키는 브라우저 세션이 종료될 때 함께 삭제되는 세션 쿠키가 됩니다.
- Domain: 쿠키가 유효한 도메인 범위를 지정합니다. 지정된 도메인과 그 하위 도메인에서만 쿠키가 전송됩니다.
- Path: 쿠키가 유효한 URL 경로를 지정합니다. 생략하면 현재 문서의 경로가 기본값으로 적용됩니다.
- Secure: 이 속성을 추가하면 해당 쿠키는 보안이 유지되는 HTTPS 연결을 통해서만 전송됩니다.
Expires, Domain, Path와 같은 쿠키 속성은 모두 선택 사항(optional)입니다. 다만 주의할 점이 있습니다. 모든 쿠키는 반드시 "Content-type:text/html\r\n\r\n"이라는 마법의 한 줄(magic line)을 출력하기 전에 설정되어야 합니다. HTTP 프로토콜의 구조상 헤더는 항상 본문(body)보다 먼저 전송되어야 하며, 일단 빈 줄로 헤더 부분이 종료되면 더 이상 헤더를 추가할 수 없기 때문입니다.
참고: 위 예제는 파이썬 2 문법을 기준으로 작성되었습니다. 파이썬 3 환경에서는 print() 함수 형태로 코드를 수정하여 사용해야 합니다.