다음을 통해 공유


HTTP 쿠키

HTTP 쿠키는 클라이언트 애플리케이션의 시스템에서 상태 정보를 저장하고 검색하는 메커니즘을 서버에 제공합니다. 이 메커니즘을 사용하면 웹 기반 애플리케이션에서 선택한 항목, 사용자 기본 설정, 등록 정보 및 나중에 검색할 수 있는 기타 정보에 대한 정보를 저장할 수 있습니다.

쿠키와 관련된 두 개의 헤더인 Set-Cookie와 Cookie가 있습니다. Set-Cookie 헤더는 사용자의 시스템에서 쿠키를 만드는 데 사용되는 HTTP 요청에 대한 응답으로 서버에서 전송됩니다. 쿠키 헤더는 일치하는 도메인 및 경로가 있는 쿠키가 있는 경우 서버에 전송된 HTTP 요청이 있는 클라이언트 애플리케이션에 의해 포함됩니다.

Set-Cookie 응답 헤더는 다음 형식을 사용합니다.

Set-Cookie: <name>=<value>[; <name>=<value>]...
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; httponly]

패턴 이름=값을 따르는 하나 이상의 문자열 시퀀스(세미콜론으로 구분)를 Set-Cookie 응답 헤더에 포함해야 합니다. 서버는 이러한 문자열 시퀀스를 사용하여 클라이언트 시스템에 데이터를 저장할 수 있습니다.

만료 날짜는 GMT(그리니치 표준시)의 만료 날짜인 expirs=date 형식을 사용하여 설정됩니다. 만료 날짜가 설정되지 않으면 인터넷 세션이 종료된 후 쿠키가 만료됩니다. 그렇지 않으면 쿠키는 만료 날짜까지 캐시에 유지됩니다. 날짜는 다음 형식을 사용해야 합니다.

DAY, DD-MMM-YYYY HH:MM:SS GMT

DAY

요일(일, 월, 화, 수, 목, 금, 토).

DD

월의 일(예: 월의 첫 날에 대한 01)입니다.

월의 세 글자 약어 (1 월, 2 월, 4 월, 5 월, 6 월, 7 월, 8 월, 9 월, 10 월, 11 월, 12 월).

YYYY

연도

HH

군사 시간의 시간 값(예: 22는 오후 10:00)입니다.

MM

분 값입니다.

SS

두 번째 값입니다.

domain=domain_name 패턴을 사용하여 도메인 이름을 지정하는 것은 영구 쿠키에 대한 선택 사항이며 쿠키가 유효한 도메인의 끝을 나타내는 데 사용됩니다. 도메인을 지정하는 세션 쿠키는 거부됩니다. 지정된 도메인 이름 끝이 요청과 일치하면 쿠키가 경로와 일치하여 쿠키를 보내야 하는지 확인합니다. 예를 들어 도메인 이름 끝이 .microsoft.com 경우 home.microsoft.com 요청 및 support.microsoft.com 확인하여 지정된 패턴이 요청과 일치하는지 확인합니다. .com, .edu 및 co.jp 같이 널리 사용되는 도메인 이름 종료에 쿠키가 설정되지 않도록 하려면 도메인 이름에 2~3개 이상의 마침표가 있어야 합니다. 허용 가능한 도메인 이름은 .microsoft.com, .someschool.edu 및 .someserver.co.jp 유사합니다. 지정된 도메인 내의 호스트만 도메인에 대한 쿠키를 설정할 수 있습니다.

패턴 경로=some_path 사용하여 경로를 설정하는 것은 선택 사항이며 쿠키가 유효한 URL의 하위 집합을 지정하는 데 사용할 수 있습니다. 경로가 지정된 경우 쿠키는 해당 경로와 일치하는 모든 요청에 유효한 것으로 간주됩니다. 예를 들어 지정된 경로가 /example이면 /examplecode 및 /example/code.htm 경로가 있는 요청이 일치합니다. 경로가 지정되지 않은 경우 경로는 Set-Cookie 헤더와 연결된 리소스의 경로로 간주됩니다.

쿠키는 https 서버로만 보낼 수 있도록 지정하는 보안으로 표시될 수도 있습니다.

마지막으로 쿠키를 HttpOnly(특성은 대/소문자를 구분하지 않음)로 표시하여 쿠키를 스크립트할 수 없으며 보안상의 이유로 클라이언트 애플리케이션에 표시해서는 안 됨을 나타낼 수 있습니다. 이는 Windows 인터넷 내에서 InternetGetCookie 함수를 통해 쿠키를 검색할 수 없음을 의미합니다.

쿠키 헤더는 도메인 및 경로가 요청과 일치하는 쿠키가 있는 HTTP 요청에 포함됩니다. 쿠키 헤더의 형식은 다음과 같습니다.

Cookie: <name>=<value> [;<name>=<value>]...

형식 이름=값을 사용하는 하나 이상의 문자열 시퀀스에는 쿠키에 설정된 정보가 포함됩니다.

쿠키 생성

Microsoft Internet Explorer용 쿠키를 생성하는 방법에는 Microsoft JScript 사용, WinINet 함수 사용, CGI 스크립트 사용의 세 가지 방법이 있습니다. 모든 메서드는 Set-Cookie 헤더에 포함된 정보를 설정해야 합니다.

DHTML(동적 HTML) 개체 모델을 사용하면 다음 예제와 같이 문서 개체의 쿠키 속성을 호출하여 쿠키를 설정할 수 있습니다.

<SCRIPT language="JavaScript">
<!--
    document.cookie = "SomeValueName = Some_Value";
-->
</SCRIPT>

InternetSetCookie 함수를 사용하여 애플리케이션에서 쿠키를 만들 수 있습니다. 자세한 내용은 쿠키 설정을 참조 하세요.

쿠키는 요청에 대한 HTTP 응답에 포함된 CGI 스크립트의 일부로 Set-Cookie 헤더를 포함하여 생성됩니다.

다음 예제는 Perl을 사용하는 Set-Cookie 헤더를 포함하는 CGI 스크립트입니다.

print "Set-Cookie:Test=test_value; 
      expires=Sat, 01-Jan-2000 00:00:00 GMT;
      path=/;"

참고 항목

WinINet은 서버 구현을 지원하지 않습니다. 또한 서비스에서 사용하면 안 됩니다. 서버 구현 또는 서비스의 경우 WinHTTP(Microsoft Windows HTTP 서비스)를 사용합니다.