HTTP Cookie (쿠키)
개요
Cookie(쿠키)는 다음과 같은 기능을 만들기 위해 사용한다.
- 방문자가 그 페이지에 몇 번 방문했는지 기록해 표시한다.
- 웹서비스에서 방문자의 최근에 방문한 페이지를 기록해 두고, 다음 번 방문시에 그 해당 페이지를 보여주기 위한 용도로 사용한다.
- 게시판이나 채팅으로 입력한 사용자명을 기록해 두고, 다음 번 방문시에 사용자명의 입력을 생략한다.
- 로그인으로 세션을 유지한다.
아래의 사양서가 공개되어 있다.
위와 같은 데이터는 CGI 등을 이용하여 서버 측에 기록하기 도 하지만, 쿠키를 이용함으로써 클라이언트측(브라우저를 기동하는 측)의 하드 디스크에 쿠키 정보 데이터를 기록을 하기도 한다.
Cookie 정보가 저장되는 폴더 및 파일
쿠키 정보가 저장되는 파일은 OS나 브라우저의 버전에 따라 다르다.
예를 들면, Windows와 같은 경우는 다음과 같은 폴더나 파일에 기록된다.
- C:\Document and Settings\(UserName)\Cookies
- C:\Program Files\Netscape\Users\(UserName]\cookies.txt
- C:\Program Files\Netscape\Navigator\cookies.txt
- C:\Windows\Cookies\~.txt
Mac OS에 Chrome인 경우에는 아래 저장된다.
- ~/Library/Application Support/Google/Chrome/Default/Cookies
Cookie 쓰기
JavaScript를 사용하여 쿠키를 설정할 때는 다음을 수행한다.
자바스크립트
document.cookie = "~";
HTML로 지정하려면 다음을 수행한다. 이 방법은 추천하지 않는 방식이다.
HTML
<meta http-equiv="Set-Cookie" content="~">
~
부분에는 다음과 같은 문자열을 지정한다.
형식
NAME=값; expires=값; domain=값; path=값; secure
NAME=값;
이외는 선택 사항이다. 각각 다음과 같은 의미가 있다.
매개변수 | 의미 | |
---|---|---|
NAME=값 |
원하는 이름에 원하는 값을 지정한다. 세미콜론(;), 쉼표(,), 공백 문자( ) 또는 한글을 사용할 때는 각각 어떤 형식으로 인코딩해야 한다. 인코딩에는 %3B , %2C , %20 등의 URL 형식의 인코딩이 자주 사용된다. |
|
expires=값 |
클라이언트 측에 기록되는 쿠키의 만료일을 Thu, 1-Jan-2030 00:00:00 GMT 와 같은 형식으로 지정한다. 표준 시간대는 항상 GMT로 지정된다. 생략하면 브라우저를 종료 할 때까지 만료된다. 과거 값을 지정하면 쿠키가 삭제된다. |
|
domain=값 |
쿠키를 게시할 웹 서버의 이름을 지정한다. 생략하면 웹서버 이름(예 : www.devkuma.com)으로 된다. | |
path=값 |
여기에서 지정한 경로 이름과 일치하는 페이지를 탐색할 때 브라우저는 저장된 쿠키 정보를 서버로 보낸다. 예를 들어, path=/docs 를 지정하면 /docs 와 일치하는 모든 페이지에 쿠키 정보가 전송된다. 기본적으로 쿠키가 설정된 페이지의 경로 이름 부분이다. |
|
secure | 이 변수를 넣으면, 서버와의 연결이 안전한 경우에만 쿠키 정보가 전송된다. |
Cookie 쓰기 예제
가장 간단한 쓰기의 예는 다음과 같다. 이것은 브라우저가 끝날 때까지 유효하며, 설정한 페이지와 같은 폴더에 있는(혹은 하위층에 있는) 페이지에 송신된다. HTTP Header
Set-Cookie: NAME=devkuma;
만료일을 지정은 다음과 같이 한다. 브라우저를 종료하든 OS를 다시 시작하든, 만료일까지 디스크에 계속 저장된다. HTTP Header
Set-Cookie: NAME=devkuma; Tue, 31-Dec-2030 23:59:59;
Cookie 읽기
JavaScript를 사용하여 쿠키 값을 읽으려면 document.cookie
값을 참조한다. 값에 대한 설명은 위를 참조하여라.
자바스크립트
alert(document.cookie);
최종 수정 : 2024-01-18